NumPy-arraykopia vs vy

Skillnaden mellan kopia och vy

Det huvudsakliga skillnaden mellan kopian och arrayvy är att kopian är en ny array, medan denna vy bara är en vy av den ursprungliga arrayen.

Kopian har data, alla ändringar som görs på kopian påverkar inte den ursprungliga arrayen, och alla ändringar som görs på den ursprungliga arrayen påverkar inte kopian.

Vyn har inte data, alla ändringar som görs på vyn påverkar den ursprungliga arrayen, och alla ändringar som görs på den ursprungliga arrayen påverkar vyn.

Kopia:

Exempel

Gör en kopia, ändra den ursprungliga arrayen och visa två arrayer:

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

Kör exempel

Kopian bör inte påverkas av ändringar som görs på den ursprungliga arrayen.

Vy:

Exempel

Skapa en vy, ändra den ursprungliga arrayen och visa två arrayer:

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

Kör exempel

Vyn bör påverkas av ändringar som görs på den ursprungliga arrayen.

Gör ändringar i vyn:

Exempel

Skapa en vy, ändra vyn och visa två arrayer:

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

Kör exempel

Den ursprungliga arrayen bör påverkas av ändringar som görs på vyn.

Kontrollera om arrayen har data

Som nämnts tidigare har kopian data medan vyn inte har data, men hur kontrollerar vi det?

Varje NumPy-array har ett attribut baseom arrayen har data, returnerar denna base-attribut Ingen.

Annars,base Attribut kommer att referera till ursprungliga objektet.

Exempel

Skriv ut värdet av base-attributet för att kontrollera om arrayen har sitt eget data:

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

Kör exempel

Kopia returneras Ingen.

Visa åter till ursprunglig array.