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 Nonesahiptir.

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.


Egzersizlerle Kendinizi Test Edin

Egzersiz yapmak:

Dizinin bir kopyasını oluşturmak için doğru yöntemi kullanın.

arr = np.array([1, 2, 3, 4, 5])

x = arr.