NumPy dizi kopyası vs görünüm

Kopya ve görünüm arasındaki fark

Kopya ve dizi görünümü arasındaki ana fark, kopyanın yeni bir dizi olmasından, bu görünümün ise orijinal dizinin görünümü olmasından kaynaklanmaktadır.

Kopya, kopyaya yapılan herhangi bir değişiklik, orijinal dizinin etkilenmesine neden olmaz ve orijinal dizine yapılan herhangi bir değişiklik de kopyayı etkilemez.

Görünüm veriye sahip değildir, görünümde yapılan her türlü değişiklik orijinal dizini etkileyecek, orijinal dizine yapılan her türlü değişiklik de görünümü etkileyecektir.

Kopya:

Örnek

Kopyalama yapın, orijinal dizini değiştirin ve iki dizini gösterin:

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

Uygulama Örneği Çalıştır

Bu kopya, orijinal dizine yapılan değişikliklerden etkilenmeyecektir.

Görünüm:

Örnek

Görünüm oluşturma, orijinal dizini değiştirme ve iki dizini gösterme:

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

Uygulama Örneği Çalıştır

Görünüm, orijinal dizine yapılan değişikliklerden etkilenecektir.

Görünümde değişiklik yapma:

Örnek

Görünüm oluşturma, görünümde değişiklik yapma ve iki dizini gösterme:

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

Uygulama Örneği Çalıştır

Orijinal dizin, görüntü üzerinde yapılan değişikliklerden etkilenecektir.

Dizinin veriye sahip olup olmadığını kontrol etme

Aşağıda belirtilen gibi, kopya veriye sahiptir,而视图不拥有数据,但是我们如何检查呢?

Her NumPy dizisi bir özellik baseEğer bu dizin veriye sahipse, bu base özelliği şu şekilde döner: None.

Aksi takdirde,base Özellik orijinal nesneyi referans alacak.

Örnek

Dizinin kendi verilerine sahip olup olmadığını kontrol etmek için base özelliğinin 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)

Uygulama Örneği Çalıştır

Kopya Dönüş None.

Görünümü Geri Getir