Kopia tablicy NumPy vs. widok
- Poprzednia strona Typy danych w NumPy
- Następna strona Kształt tablic w NumPy
Różnica między kopią a widokiem
Główna różnica między kopią a widokiem tablicy polega na tym, że kopia to nowa tablica, podczas gdy widok to tylko widok oryginalnej tablicy.
Kopia zawiera dane, jakiekolwiek zmiany dokonywane na kopii nie wpłyną na oryginalny ciąg, a zmiany dokonywane na oryginalnym ciągu nie wpłyną na kopię.
Widok nie ma danych, każda zmiana w widoku wpływa na oryginalną tablicę, a każda zmiana w oryginalnej tablicy wpływa na widok.
Kopia:
Przykład
Wykonaj kopiowanie, zmień oryginalną tablicę i wyświetl dwie tablice:
import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.copy() arr[0] = 61 print(arr) print(x)
Kopia nie powinna być wpływana przez zmiany w oryginalnej tablicy.
Widok:
Przykład
Utwórz widok, zmień oryginalną tablicę i wyświetl dwie tablice:
import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.view() arr[0] = 61 print(arr) print(x)
Widok powinien być wpływany przez zmiany w oryginalnej tablicy.
Zmiany w widoku:
Przykład
Utwórz widok, zmień widok i wyświetl dwie tablice:
import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.view() x[0] = 31 print(arr) print(x)
Oryginalna tablica powinna być wpływana przez zmiany w widoku.
Sprawdź, czy tablica ma dane
Jak wspomniano wcześniej, kopia ma dane, a widok nie ma danych, ale jak możemy to sprawdzić?
Każda tablica NumPy ma atrybut base
, jeśli tablica ma dane, atrybut base zwraca: Brak wartości
.
W przeciwnym razie:base
Atrybuty będą odnosić się do oryginalnego obiektu.
Przykład
Wydrukuj wartość atrybutu base, aby sprawdzić, czy tablica ma swoje własne dane:
import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.copy() y = arr.view() print(x.base) print(y.base)
Kopia zwrócona Brak wartości
.
Zwróć do oryginalnego tablicy.
- Poprzednia strona Typy danych w NumPy
- Następna strona Kształt tablic w NumPy