NumPy Dizi Kopyalama ve Görünüm
Kopyalama ve Görünüm Arasındaki Fark
Bir kopya ile bir dizinin görünümü arasındaki temel fark, kopyanın yeni bir dizi olması ve görünümün yalnızca orijinal dizinin bir görünümü olmasıdır.
Kopya verilerin sahibidir ve kopyada yapılan herhangi bir değişiklik orijinal diziyi etkilemez ve orijinal dizide yapılan herhangi bir değişiklik kopyayı etkilemez.
Görünüm , verilere sahip değildir ve görünümde yapılan herhangi bir değişiklik orijinal diziyi etkiler ve orijinal dizide yapılan herhangi bir değişiklik görünümü etkiler.
KOPYALA:
Örnek
Bir kopya oluşturun, orijinal diziyi değiştirin ve her iki diziyi de görüntüleyin:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
arr[0] = 42
print(arr)
print(x)
Kopya, orijinal dizide yapılan değişikliklerden ETKİLENMEMELİDİR.
GÖRÜŞ:
Örnek
Bir görünüm oluşturun, orijinal diziyi değiştirin ve her iki diziyi de görüntüleyin:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 42
print(arr)
print(x)
Görünüm, orijinal dizide yapılan değişikliklerden ETKİLENMELİDİR.
GÖRÜNÜMDE DEĞİŞİKLİK YAPIN:
Örnek
Bir görünüm oluşturun, görünümü değiştirin ve her iki diziyi de görüntüleyin:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
x[0] = 31
print(arr)
print(x)
Orijinal dizi, görünümde yapılan değişikliklerden ETKİLENMELİDİR.
Dizinin Verilerine Sahip olup olmadığını kontrol edin
Yukarıda bahsedildiği gibi, kopyalar verilere sahiptir ve görünümler verilere sahip değildir , ancak bunu nasıl kontrol edebiliriz?
Her NumPy dizisi, verilerin sahibiyse base
, dönen özniteliğe None
sahiptir.
Aksi takdirde, base
öznitelik orijinal nesneye başvurur.
Örnek
Bir dizinin kendi verisine sahip olup olmadığını kontrol etmek için temel özniteliğin değerini yazdırın:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
y = arr.view()
print(x.base)
print(y.base)
Kopya geri döner None
.
Görünüm orijinal diziyi döndürür.