Copies et vues
Introduction
Lors de l'exécution des fonctions, certaines d'entre elles renvoient une copie du tableau d'entrée, tandis que d'autres renvoient la vue. Lorsque le contenu est physiquement stocké à un autre endroit, on parle de copie. Si, par contre, une vue différente du même contenu de la mémoire est fournie, on l'appelle View.
No Copy
Les affectations simples ne font pas de copie de l'objet tableau. Au lieu de cela, elles utilisent le même id() du tableau original pour y accéder. L'id() renvoie un identifiant universel de l'objet Python, similaire au pointeur en C.
En outre, tout changement dans l'un se reflète dans l'autre. Par exemple, le changement de forme de l'un modifiera également la forme de l'autre.
Exemple
import numpy as np
a = np.arange(6)
print 'Our array is:'
print a
print 'Applying id() function:'
print id(a)
print 'a is assigned to b:'
b = a
print b
print 'b has same id():'
print id(b)
print 'Change shape of b:'
b.shape = 3,2
print b
print 'Shape of a also gets changed:'
print a
Il produira le résultat suivant -
Our array is:
[0 1 2 3 4 5]
Applying id() function:
139747815479536
a is assigned to b:
[0 1 2 3 4 5]
b has same id():
139747815479536
Change shape of b:
[
[0 1]
[2 3]
[4 5]
]
Shape of a also gets changed:
[
[0 1]
[2 3]
[4 5]
]
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !