Ndarray, benzer türdeki öğelerin koleksiyonunu saklayan, numpy'de tanımlanan n boyutlu dizi nesnesidir. Başka bir deyişle ndarray'i veri tipi (dtype) nesnelerinin koleksiyonu olarak tanımlayabiliriz.
Ndarray nesnesine 0 tabanlı indeksleme kullanılarak erişilebilir. Array nesnesinin her öğesi bellekte aynı boyutu içerir.
Bir ndarray nesnesi oluşturma
Ndarray nesnesi, numpy modülünün dizi rutini kullanılarak oluşturulabilir. Bu amaçla numpy'yi içe aktarmamız gerekiyor.
>>> a = numpy.array
Aşağıdaki görüntüyü düşünün.
Eşdeğer n boyutlu diziyi oluşturmak için bir koleksiyon nesnesini dizi rutinine de aktarabiliriz. Sözdizimi aşağıda verilmiştir.
>>> numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
Parametreler aşağıdaki tabloda açıklanmıştır.
SN | Parametre | Tanım |
---|---|---|
1 | nesne | Koleksiyon nesnesini temsil eder. Bir liste, tuple, sözlük, set vb. olabilir. |
2 | dtype | Bu seçeneği belirtilen türe değiştirerek dizi elemanlarının veri türünü değiştirebiliriz. Varsayılan hiçbiridir. |
3 | kopyala | Bu isteğe bağlıdır. Varsayılan olarak true'dur, bu da nesnenin kopyalandığı anlamına gelir. |
4 | emir | Bu seçeneğe atanabilecek 3 olası değer olabilir. C (sütun sırası), R (satır sırası) veya A (herhangi biri) olabilir |
5 | test edildi | Döndürülen dizi, varsayılan olarak temel sınıf dizisi olacaktır. Bu seçeneği true olarak ayarlayarak alt sınıfların geçmesini sağlayacak şekilde bunu değiştirebiliriz. |
6 | ndmin | Ortaya çıkan dizinin minimum boyutlarını temsil eder. |
Listeyi kullanarak bir dizi oluşturmak için aşağıdaki sözdizimini kullanın.
>>> a = numpy.array([1, 2, 3])
Çok boyutlu bir dizi nesnesi oluşturmak için aşağıdaki sözdizimini kullanın.
>>> a = numpy.array([[1, 2, 3], [4, 5, 6]])
Dizi öğelerinin veri türünü değiştirmek için koleksiyonla birlikte veri türünün adını da belirtin.
dize Java'da int'ye dönüştürülür
>>> a = numpy.array([1, 3, 5, 7], complex)
Dizinin boyutlarını bulma
benim Dizinin boyutlarını bulmak için fonksiyon kullanılabilir.
>>> import numpy as np >>> arr = np.array([[1, 2, 3, 4], [4, 5, 6, 7], [9, 10, 11, 23]]) >>> print(arr.ndim)
Her dizi öğesinin boyutunu bulma
itemsize işlevi her dizi öğesinin boyutunu elde etmek için kullanılır. Her dizi öğesi tarafından alınan bayt sayısını döndürür.
Aşağıdaki örneği düşünün.
Örnek
#finding the size of each item in the array import numpy as np a = np.array([[1,2,3]]) print('Each item contains',a.itemsize,'bytes')
Çıktı:
Each item contains 8 bytes.
Her dizi öğesinin veri türünü bulma
Her dizi öğesinin veri türünü kontrol etmek için dtype işlevi kullanılır. Dizi öğelerinin veri türünü kontrol etmek için aşağıdaki örneği göz önünde bulundurun.
Örnek
#finding the data type of each array item import numpy as np a = np.array([[1,2,3]]) print('Each item is of the type',a.dtype)
Çıktı:
Each item is of the type int64
Dizinin şeklini ve boyutunu bulma
Dizinin şeklini ve boyutunu elde etmek için numpy dizisiyle ilişkili boyut ve şekil işlevi kullanılır.
Aşağıdaki örneği düşünün.
dizeyi int java'ya dönüştür
Örnek
import numpy as np a = np.array([[1,2,3,4,5,6,7]]) print('Array Size:',a.size) print('Shape:',a.shape)
Çıktı:
Array Size: 7 Shape: (1, 7)
Dizi nesnelerini yeniden şekillendirme
Dizinin şekli derken, çok boyutlu bir dizinin satır ve sütun sayısını kastediyoruz. Ancak numpy modülü bize çok boyutlu dizinin satır ve sütun sayısını değiştirerek diziyi yeniden şekillendirme yolunu sağlar.
Diziyi yeniden şekillendirmek için ndarray nesnesiyle ilişkili reshape() işlevi kullanılır. Dizinin yeni şeklinin satır ve sütunlarını belirten iki parametreyi kabul eder.
Aşağıdaki görselde verilen diziyi yeniden şekillendirelim.
Örnek
import numpy as np a = np.array([[1,2],[3,4],[5,6]]) print('printing the original array..') print(a) a=a.reshape(2,3) print('printing the reshaped array..') print(a)
Çıktı:
printing the original array.. [[1 2] [3 4] [5 6]] printing the reshaped array.. [[1 2 3] [4 5 6]]
Dizide Dilimleme
NumPy dizisinde dilimleme, bir diziden çeşitli öğeleri çıkarmanın yoludur. Dizide dilimleme, python listesinde yapıldığı gibi gerçekleştirilir.
Dizinin belirli bir öğesini yazdırmak için aşağıdaki örneği göz önünde bulundurun.
Örnek
import numpy as np a = np.array([[1,2],[3,4],[5,6]]) print(a[0,1]) print(a[2,0])
Çıktı:
2 5
Yukarıdaki program 2'yi yazdırırve0'dan itibaren elemanoindeks ve 0o2'den elemanvedizinin indeksi.
Linspace
Linspace() işlevi, verilen aralıkta eşit aralıklı değerleri döndürür. Aşağıdaki örnek, verilen 5-15 aralığında eşit olarak ayrılmış 10 değeri döndürür
Örnek
import numpy as np a=np.linspace(5,15,10) #prints 10 values which are evenly spaced over the given interval 5-15 print(a)
Çıktı:
[ 5. 6.11111111 7.22222222 8.33333333 9.44444444 10.55555556 11.66666667 12.77777778 13.88888889 15. ]
Dizi elemanlarının maksimum, minimum ve toplamını bulma
NumPy, dizi öğelerinin sırasıyla maksimum, minimum ve toplamını bulmak için kullanılan max(), min() ve sum() işlevlerini sağlar.
piton içerir
Aşağıdaki örneği düşünün.
Örnek
import numpy as np a = np.array([1,2,3,10,15,4]) print('The array:',a) print('The maximum element:',a.max()) print('The minimum element:',a.min()) print('The sum of the elements:',a.sum())
Çıktı:
The array: [ 1 2 3 10 15 4] The maximum element: 15 The minimum element: 1 The sum of the elements: 35
NumPy Dizi Ekseni
Bir NumPy çok boyutlu dizisi, eksen-0'ın sütunları ve eksen-1'in satırları temsil ettiği eksen tarafından temsil edilir. Satır veya sütun elemanlarının eklenmesi gibi satır düzeyinde veya sütun düzeyinde hesaplamalar yapmak için eksenden bahsedebiliriz.
Her sütun arasındaki maksimum öğeyi, her satır arasındaki minimum öğeyi ve tüm satır öğelerinin toplamını hesaplamak için aşağıdaki örneği göz önünde bulundurun.
Örnek
import numpy as np a = np.array([[1,2,30],[10,15,4]]) print('The array:',a) print('The maximum elements of columns:',a.max(axis = 0)) print('The minimum element of rows',a.min(axis = 1)) print('The sum of all rows',a.sum(axis = 1))
Çıktı:
The array: [[1 2 30] [10 15 4]] The maximum elements of columns: [10 15 30] The minimum element of rows [1 4] The sum of all rows [33 29]
Karekök ve standart sapmayı bulma
Numpy dizisiyle ilişkili sqrt() ve std() işlevleri, dizi öğelerinin sırasıyla karekökünü ve standart sapmasını bulmak için kullanılır.
Standart sapma, dizinin her bir öğesinin numpy dizisinin ortalama değerinden ne kadar farklı olduğu anlamına gelir.
Aşağıdaki örneği düşünün.
soyut sınıf
Örnek
import numpy as np a = np.array([[1,2,30],[10,15,4]]) print(np.sqrt(a)) print(np.std(a))
Çıktı:
[[1. 1.41421356 5.47722558] [3.16227766 3.87298335 2. ]] 10.044346115546242
Dizideki aritmetik işlemler
Numpy modülü, çok boyutlu diziler üzerinde aritmetik işlemleri doğrudan gerçekleştirmemize olanak sağlar.
Aşağıdaki örnekte aritmetik işlemler iki çok boyutlu dizi a ve b üzerinde gerçekleştirilir.
Örnek
import numpy as np a = np.array([[1,2,30],[10,15,4]]) b = np.array([[1,2,3],[12, 19, 29]]) print('Sum of array a and b ',a+b) print('Product of array a and b ',a*b) print('Division of array a and b ',a/b)
Dizi Birleştirme
Numpy bize iki çok boyutlu diziyi dikey veya yatay olarak birleştirmemize olanak tanıyan dikey istifleme ve yatay istifleme sağlar.
Aşağıdaki örneği düşünün.
Örnek
import numpy as np a = np.array([[1,2,30],[10,15,4]]) b = np.array([[1,2,3],[12, 19, 29]]) print('Arrays vertically concatenated ',np.vstack((a,b))); print('Arrays horizontally concatenated ',np.hstack((a,b)))
Çıktı:
Arrays vertically concatenated [[ 1 2 30] [10 15 4] [ 1 2 3] [12 19 29]] Arrays horizontally concatenated [[ 1 2 30 1 2 3] [10 15 4 12 19 29]]