04. Numpy: Copy ve View

Python’da atama işlemi yapılan aktarım referans türündendir. Yani, değişkenin gösterdiği bellek adresi aktarılır ve her iki değişken aynı pozisyonu işaret eder. Bir değişkende olan değişiklikten diğer değişkende etkilenir. Bu duruma çözüm olarak view ve copy kullanılabilir. Öncelikle sorunumuzu görelim.

b üzerinde yapılan shape değişikliğinde a’da etkilenmiştir. Çünkü ikisi de aynı bellek bölgesini kullanır. (id komutu bellek adreslerini gösterir.)

04.01. View

Farklı array nesneleri benzer veriyi paylaşabilir. View metodu yeni bir nesne yaratır fakat aynı veri değerlerini bellek adresi olarak tutar.

a ve c değişkenleri farklı adresleri göstermesine rağmen a[0] ve c[0] aynı adresleri gösterir. c üzerindeki bir değişiklikten a etkilenir. Ancak, c üzerine yapılan yeni bir ekleme işleminde a etkilenmez.

04.02. Copy

Bu metot hem array hem de içindeki öğeleri kopyalar. Bu sayede her iki değişken birbirinden hiç etkilenmez.

Şimdi güncelleme yapalım.

Görüldüğü gibi iki yapı birbirinden etkilenmedi.

04.03. Fonksiyon ve metotlar

Numpy bize birçok fonksiyon ve metot sunar. Şu ana kadar bazılarını gördük. Bu bölümde kategorik olarak bu fonksiyon ve metotların isimlerine ayırdık. Daha fazla bilgiyi tıklayarak elde edebilirsiniz.

Array Yaratma
arange, array, copy, empty, empty_like, eye, fromfile, fromfunction, identity, linspace, logspace, mgrid, ogrid, ones, ones_like, r, zeros, zeros_like
Dönüşümler
ndarray.astype, atleast_1d, atleast_2d, atleast_3d, mat
İşlemler
array_split, column_stack, concatenate, diagonal, dsplit, dstack, hsplit, hstack, ndarray.item, newaxis, ravel, repeat, reshape, resize, squeeze, swapaxes, take, transpose, vsplit, vstack
Sorular
all, any, nonzero, where
Sıralama
argmax, argmin, argsort, max, min, ptp, searchsorted, sort
Operasyonlar
choose, compress, cumprod, cumsum, inner, ndarray.fill, imag, prod, put, putmask, real, sum
Temel istatistik
cov, mean, std, var
Temel lineer cebir
cross, dot, outer, linalg.svd, vdot