Copies et vues

30 min Niveau 9

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]
]
logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus