Copie de tableau NumPy vs Vue

La différence entre la copie et la vue

La principale différence entre la copie et la vue de tableau est que la copie est un nouveau tableau, tandis que cette vue n'est qu'une vue de l'original.

La copie possède des données, toute modification apportée à la copie n'affectera pas l'original, et toute modification apportée à l'original n'affectera pas la copie.

La vue ne possède pas de données, toute modification apportée à la vue affecte l'array original, et toute modification apportée à l'array original affecte la vue.

Copie :

Exemple

Faire une copie, modifier l'array original et afficher deux arrays :

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
arr[0] = 61
print(arr) 
print(x)

Exécuter l'exemple

La copie ne devrait pas être affectée par les modifications apportées à l'array original.

Vue :

Exemple

Créer une vue, modifier l'array original puis afficher deux arrays :

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 61
print(arr) 
print(x)

Exécuter l'exemple

La vue devrait être affectée par les modifications apportées à l'array original.

Modifier dans la vue :

Exemple

Créer une vue, modifier la vue et afficher deux arrays :

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
x[0] = 31
print(arr) 
print(x)

Exécuter l'exemple

L'array original devrait être affecté par les modifications apportées à la vue.

Vérifier si l'array possède des données

Comme mentionné précédemment, la copie possède des données, tandis que la vue ne possède pas de données, mais comment pouvons-nous vérifier ?

Chaque array NumPy possède une propriété base,si l'array possède des données, cette propriété base retourne None.

Sinon,base L'attribut va référencer l'objet original.

Exemple

Imprimer la valeur de l'attribut base pour vérifier si l'array possède ses propres données :

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
y = arr.view()
print(x.base)
print(y.base)

Exécuter l'exemple

Copie de retour None.

Voir le tableau original