Copie profonde NumPy

Muhammad Maisam Abbas 30 janvier 2023
  1. NumPy Deep Copy avec la fonction copy.deepcopy() en Python
  2. NumPy Deep Copy avec l’approche définie par l’utilisateur en Python
Copie profonde NumPy

Ce tutoriel présentera les méthodes pour copier en profondeur un tableau NumPy en Python.

NumPy Deep Copy avec la fonction copy.deepcopy() en Python

Python a deux types de copies, une copie superficielle et une copie profonde. Une copie superficielle signifie que le tableau copié contient uniquement une référence au tableau d’origine. Cela signifie que tout changement dans le tableau d’origine sera reflété dans le tableau copié. D’autre part, une copie profonde signifie copier chaque élément du tableau d’origine dans le tableau copié. Dans ce type de copie, un nouvel emplacement mémoire est alloué à chaque élément à l’intérieur du tableau copié. Cela signifie que tout changement dans le tableau d’origine ne changera rien à l’intérieur du tableau copié.

La fonction deepcopy() à l’intérieur du module copy est utilisée pour copier des listes en profondeur, mais elle fonctionne également très bien avec les tableaux en Python. La fonction copy.deepcopy() prend le tableau comme argument d’entrée et renvoie une copie complète du tableau. L’exemple de code suivant nous montre comment copier en profondeur un tableau NumPy avec la fonction copy.deepcopy() en Python.

import numpy as np
import copy

array = np.array([1, 2, 3, 4])
array2 = copy.deepcopy(array)
array[0] = array[0] + 1
print(array)
print(array2)

Production:

[2 2 3 4]
[1 2 3 4]

Dans le code ci-dessus, nous avons copié en profondeur le tableau NumPy array à l’intérieur du array2 avec la fonction copy.deepcopy(). Nous avons ensuite modifié les éléments à l’intérieur du array. La sortie montre que la modification des valeurs à l’intérieur du tableau NumPy array n’a aucun effet sur le tableau NumPy array2.

NumPy Deep Copy avec l’approche définie par l’utilisateur en Python

Une autre méthode de copie en profondeur d’un tableau NumPy consiste à parcourir l’ensemble du tableau et à copier chaque élément qu’il contient. Voir l’exemple de code suivant.

import numpy as np

array = np.array([1, 2, 3, 4])
array2 = np.array([x for x in array])
array[1] = 1
print(array)
print(array2)

Production:

[1 1 3 4]
[1 2 3 4]

Dans le code ci-dessus, nous avons copié en profondeur le tableau NumPy array à l’intérieur du tableau NumPy array2 en itérant à travers chaque élément à l’intérieur du array. Nous avons ensuite modifié les éléments à l’intérieur du array. La sortie montre que la modification des valeurs à l’intérieur du tableau NumPy array n’a aucun effet sur le tableau NumPy array2.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn