Dizi. Diziler ve matrislerle çalışma


Veri kitaplığı NumPy

NumPy — vektörler, matrisler ve dizilerle çalışmak için çok sayıda işlemi uygulayan Python programlama dili için bir açık kaynak kitaplığı. 

Yorumlanan dillerde (örn. Python) uygulanan matematiksel algoritmalar, genellikle derlenmiş dillerde (örn. Fortran, C, Java) uygulananlardan çok daha yavaştır. NumPy kütüphanesi, çok boyutlu dizilerle çalışmak için optimize edilmiş hesaplama algoritmalarının (işlevler ve işleçler biçiminde) uygulamalarını sağlar. 
Sonuç olarak, diziler (matrisler) üzerinde bir dizi işlem olarak ifade edilebilen ve NumPy kullanılarak uygulanabilen herhangi bir algoritma yeterince hızlıdır.

NumPy (Numeric Python), verilerle çalışmak için temel bir matematik kitaplığıdır. Bu kitaplık, makine öğrenimi veya veri analizi görevleriyle çalışmak için diğer kitaplıkların temelini oluşturur (örneğin, Pandalar (tablo verileriyle çalışma), SciPy (optimizasyon yöntemleri ve bilimsel hesaplamalar), < tt>Matplotlib (çizim)).

 

NumPy ile Çalışma

Numpy kütüphanesi ile çalışmaya başlamak için, diğer kütüphaneler gibi onu da programın başında içe aktarmanız gerekir. numpy'yi içe aktar ya da öylesine (ki daha sık kullanılır) numpy'yi np olarak içe aktar



NumPy Vektörleri

NumPy'deki bir vektör (veya dizi), sıralı bir türdeş veri kümesidir.

Bir vektörün bir elemanına, tıpkı listelerde olduğu gibi indeksi ile erişilebilir. Vektörün her öğesinin, oluşturma sırasında belirlenen kendi özel yeri vardır.
Tüm vektör öğeleri aynı veri türüne sahiptir (int, str, bool, vb.).

Vektör Oluşturma
Bir vektör oluşturmak için numpy.array yapıcısını (yinelenebilir bir nesne) kullanmanız gerekir.
Parantezler yinelenebilir herhangi bir nesneyi belirtir: demet, liste, aralık(), vb.
 
Örnek 
numpy'yi np olarak içe aktar numpy'yi np olarak içe aktar print(np.array((1,2,3,4,5))) # demetten vektör print(np.array([1,2,3,4,5])) # listeden vektör print(np.array(range(5))) # oluşturucudan vektör

Vektör öğeleriyle çalışma

Vektör öğeleriyle çalışmak, liste öğeleriyle çalışmakla aynıdır, öğelere dizinlerine göre erişebilir ve ayrıca dilimler oluşturabilirsiniz.

Örnek
<ön stil="kenar boşluğu:0px; sağ kenar boşluğu:0px; sağ kenar boşluğu:5px"> 1 2 3 4 5 6 7 numpy'yi np olarak içe aktar V = np.dizi((1,2,3,4)) yazdır(V[0]) # 1 yazdır(V[-1]) # 4 yazdır(V[1:-2]) # [2] print(V[::2]) # [1 3]
Vektör öğelerini seçme
Vektör öğelerini seçmek için mantıksal değerler (ifadeler) içeren bir vektör kullanabilirsiniz. Boolean değerlere sahip vektörde True olacak vektörün elemanları seçilecektir.
 

Örnek
numpy'yi np olarak içe aktar V = np.array([1,-2,3,-4,5]) # vektörün ilk iki öğesini seçin print(V[np.array((Doğru, Doğru, Yanlış, Yanlış, Yanlış))]) # [ 1 -2] # pozitif vektör öğelerini seçin yazdır(V[D > 0]) # [1 3 5] # çift vektör öğelerini seçin print(V[V % 2 == 0]) # [-2 -4]

Dizi ve matris oluşturma yolları

Diziler ve matrisler oluşturmanın diğer yararlı yolları.

Örnek
<ön stil="kenar boşluğu:0px; sağ kenar boşluğu:0px; sağ kenar boşluğu:5px"> 1 2 3 4 5 6 7 8 9 10 on bir 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 otuz 31 32 33 34 35 36 37 numpy'yi np olarak içe aktar # Tek boyutlu sıfır dizisi print(np.zero(5)) #[0. 0.0.0.0.] # İki boyutlu sıfır dizisi print(np.sıfırlar((2, 3))) # [[0. 0.0.] #[0. 0.0.]] # 3B birim dizisi print(np.ones((2,3,4))) # [[[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]] # # [[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]]] # Tip göstergeli sıfır dizisi print(np.zeros(5, dtype=np.int)) # [0 0 0 0 0] # Liste listesine dayalı bir dizi print(np.array([[1,2.0],[0,0],(1,3.)])) # [[1. 2.] #[0. 0.] # [1. 3.]] # 0'dan başlayan bir aritmetik ilerlemenin öğeleriyle dolu bir dizi print(np.arange(10)) # [0 1 2 3 4 5 6 7 8 9] # Tip göstergeli aritmetik ilerleme print(np.arange(2, 10, dtype=np.float)) # [2. 3. 4. 5. 6. 7. 8. 9.] # Tamsayı olmayan farkla aritmetik ilerleme print(np.arange(2, 3, 0.1)) # [2. 2,1 2,2 2,3 2,4 2,5 2,6 2,7 2,8 2,9] # Belirli sayıda terimle aritmetik ilerleme print(np.linspace(1., 4., 6)) # [1. 1,6 2,2 2,8 3,4 4. ]
Sıfır dizi öğesi
 
Fonksiyon sıfırdan farklı(V) 
Sonuç, bir dizi dizisidir. Bu tür her dizi, orijinal dizinin ayrı bir eksenine karşılık gelir ve bu dizide sıfır olmayan öğelere sahip dizinler içerir.
V - bir NumPy dizisi veya dizi benzeri nesne.
Orijinal V dizisinin sıfır olmayan öğelerinin dizin dizileriyle birlikte bir Python tuple (tuple) - tuple döndürür.
 
İşlev count_nonzero(V) 
Bu işlev, Python nesnelerinin doğru olup olmadığını kontrol eden yerleşik  __bool__() yöntemine dayalıdır.  count_nonzero() işlevinin aslında yalnızca sayılarla değil, aynı zamanda doğru veya yanlış olabilen tüm nesnelerle de çalışabildiği sonucu çıkar.
V - bir NumPy dizisi veya dizi benzeri nesne.
İşlev, belirtilen eksen boyunca sıfır olmayan dizi öğelerinin sayısını döndürür.

Çapraz Diziler

 diag(V, k=0) işlevi, bir diziden köşegen çıkarmanıza ve tek boyutlu dizilerden köşegen diziler oluşturmanıza olanak tanır.
V - Dizi benzeri bir nesne, iki boyutlu veya tek boyutlu diziler, matrisler, listeler veya demetler veya bir liste veya demet döndüren bir yöntemi olan herhangi bir işlev veya nesne.
k - köşegenin dizini (isteğe bağlı).
Varsayılan, ana köşegene karşılık gelen k = 0 şeklindedir. Pozitif bir k değeri köşegeni yukarı, negatif bir değer ise aşağı taşır.

İşlev, dizi NumPy (ndarray) - belirtilen dizi köşegenini veya belirtilen tek boyutlu diziden köşegen diziyi döndürür.

2B NumPy dizileri

İki boyutlu bir dizinin bir elemanına, elemanın koordinatları, önce satır numarası, sonra sütun numarası belirtilerek erişilir. Koordinatlar virgülle ayrılmıştır. 
Herhangi bir dizi, reshape(). işlevi kullanılarak iki boyutlu bir diziye dönüştürülebilir.

Örnek
<ön stil="kenar boşluğu:0px; sağ kenar boşluğu:0px; sağ kenar boşluğu:5px"> 1 2 3 4 5 6 7 8 # reshape() işlevi, verilerini değiştirmeden bir dizinin şeklini değiştirir. x = np.arange(12).reshape(3, 4) yazdır(x) # [[ 0 1 2 3] # [ 4 5 6 7] # [ 8 9 10 11]] # Bir öğeye erişmek için koordinatlarını virgülle ayırarak belirtin print(x[1, 2]) # 6