NumPy Hile Sayfası
Uygulamalı çalışmanızı sağlayacak NumPy'ye hızlı bir göz atmaya mı ihtiyacınız var? Bu makale tam ihtiyacınız olan şey!
Başlarken
NumPy , Python'da bilimsel bir bilgi işlem paketidir. Lineer cebir, fourier dönüşümü ve matrisler için önceden tanımlanmış fonksiyonlarla birlikte gelir. NumPy genellikle Veri Bilimi uygulamaları için kullanılır.
Başlamak için öncelikle sisteminizde Python ve NumPy olduğundan emin olun. Nasıl alacağınız, sisteminize ve tercih ettiğiniz IDE'ye bağlıdır, ancak Anaconda'yı öneririm. Temel Anaconda kurulumu ile terminale gidip "conda install numpy" & voila'yı çalıştırabilirsiniz!
Şimdi, çalışmaya başlamak için bir example.py dosyası oluşturalım.
Not: Çalışmak için tek bir örnek dosya yerine bir proje oluşturacak olsaydık, basitçe bir dizin ve bunun içinde bir __init__.py dosyası oluşturmamız gerekirdi.
NumPy ile dosya içerisinde çalışabilmek için dosyanın başına aşağıdaki satırı eklemelisiniz.
numpy'yi np olarak içe aktar
Not: NumPy'den bir işlevi her çağırdığımızda numpy yazmak zorunda kalmamak için genellikle np olarak içe aktarırız. Değiştirilebilmesine rağmen, np'nin genel kural olduğunu unutmayın.
Bundan sonra, sadece terminale gidip şu komutu çalıştırarak örnek dosya içindeki kodu çalıştırabilirsiniz:
piton örneği.py
Liste ve Dizi
Dizileri NumPy operasyonlarımızda çok kullanacağız, bu yüzden bir şeyi açıklığa kavuşturmak daha iyi: Python'da listeler ve diziler farklıdır.
Diziler ile matrisler gibi çok boyutlu yapıları bildirebilir ve içinde sayısal işlemler yapabilirsiniz, ancak eski basit Listelerde durum böyle değildir. Bu nedenle NumPy, Dizilere büyük ölçüde güvenir.
Listeler, bildirilmek zorunda kalmadan bir değere atanabilir, ancak Diziler atanamaz. Bu nedenle, bir diziyi tanımlamak için şunları yapmalısınız:
exampleArray = np.arrray([10, 15, 20]) // tek boyutlu dizi
Veya çok boyutlu bir diziyi şu şekilde tanımlayabilirsiniz:
örnekDizi2 = np.array([10, 15, 20], [50, 100, 150], [1, 2, 3])
Dizi içindeki öğeleri şu şekilde arayabilirsiniz:
exampleArray2 [1] // [50, 100, 150] döndürür
exampleArray2 [1] [0]// 50 döndürür
Yöntemler
Aşağıda, NumPy ile çalışırken yaygın olarak kullanılan en temel işlevleri bulacaksınız. Çok, çok daha fazlası olmasına rağmen, aşağıdakiler başlamanız için yeterli olacaktır.
Dizi Oluşturma Yöntemleri
- np.arange(0, 10): Öğe olarak 0'dan 9'a kadar sayılarla tek boyutlu bir dizi oluşturur.
- np.arange(0, 10, 3): 0 ile 10 arasındaki sayıların her üçte bir atladığı tek boyutlu bir dizi oluşturur. Öğe olarak 0,3,6,9 olan bir dizi döndürür.
- np.zeros(3): Her öğe için 0 değeriyle 3 öğelik bir dizi oluşturur.
- np.ones(3): Her öğe için 1 değeri olan 3 öğeli bir dizi oluşturur.
- np.linspace(0,20,5): 0 ile 20 arasındaki 5 sayıyı aralarında eşit adımlarla alır. 0, 5, 10, 15, 20 öğelerinden oluşan bir dizi döndürür. 6 öğe seç dersek, aralarında eşit boşluk sağlamak için öğeler intefer yerine yüzer olacağını unutmayın.
- np.eye(3): 3 sütun ve 3 satırdan oluşan bir birim matris oluşturur. Köşegen değerlerin tümü 1'i, diğer tüm değerlerin tümü 0'ı döndürür.
- np.random.randn(5): Öğe olarak 5 rasgele sayı içeren tek boyutlu bir dizi oluşturur. Sayılar tamsayı ve/veya değişken, negatif ve/veya pozitif tipte olabilir.
- np.random.randn(5,5): Öğe olarak 25 rasgele değer içeren 5 satır ve 5 sütundan oluşan bir matris oluşturur.
- np.random.randint(1, 10, 2): 1'den büyük ve 10'dan küçük iki rasgele sayı döndürür.
- myArray.reshape(5,5): myArray adlı tek boyutlu diziyi alır ve 5 satır ve 5 sütundan oluşan bir matris olarak döndürür. Dizide yeterli sayıda öğe yoksa, örnek durumda 5 x 5 = 25 öğe varsa, bunun bir hata vereceğini ve çalışmayacağını unutmayın. Bu yöntem, dizinin kendisini değiştirmeyecek, yalnızca dizinin değiştirilmiş bir sürümünü döndürecektir.
- myArray.max(): Bir sayı dizisinin öğeleri içindeki en büyük sayıyı döndürür.
- myArray.min(): Bir sayı dizisinin öğeleri içindeki en küçük sayıyı döndürür.
- myArray.argmax(): Bir sayı dizisinin öğeleri içindeki en büyük sayının dizinini döndürür.
- myArray.argmin(): Bir sayı dizisinin öğeleri içindeki en küçük sayının dizinini döndürür.
- myArray.shape: Bir dizinin şeklini döndürür. Dizi, 10 öğeli tek boyutlu bir diziyse, (10, ) değerini döndürür. Dizi 5 sütun ve 6 satırdan oluşan bir matris ise (5,6) değerini döndürür. Bunun bir işlev değil, bir öznitelik olduğunu unutmayın, bu nedenle şekil çağrılırken parantez yoktur.
- myArray[5]: Dizideki 5 dizin numaralı öğeyi döndürür
- dizim[3:5]: Dizin numarası 3 olan öğe dahil, ancak dizin numarası 5 olmayan, dizin sayısı 3 ile 5 arasındaki öğeleri döndürür.
- myArray[3:5] = -3: 3 ve 5. dizinler arasındaki öğelerin değerini -3 olarak değiştirir.
- myArray[:] = 30: Dizideki tüm öğelerin değerini birer birer 30 olarak değiştirir.
- myArray = 30: myArray'in türünü diziden tamsayıya değiştirir ve değerini 30 olarak ayarlar.
- newArray = myArray.copy(): myArray'in bir kopyasını oluşturur ve onu newArray olarak ayarlar. .copy() yöntemini kullanmadıysanız, newArray'de yaptığınız tüm değişikliklerin myArray'e de yansıdığını göreceğinizi unutmayın.
Bir matrisi myMatrix = ( [5, 10, 15] , [1, 2, 3] , [0, 0, 0] ) olarak bildirelim.
- myMatrix[0]: Bir dizi olan satır dizini 0 olan öğeyi döndürür. Bu nedenle [5, 10, 15] döndürür.
- myMatrix[0] [1]: Sütun indeksi 1 ve satır indeksi 0 olan öğeyi döndürür, dolayısıyla bu durumda 10 değerini döndürür.
- myMatrix[0,1]: Sütun indeksi 1 ve satır indeksi 0 olan öğeyi döndürür, yani bu durumda 10 değerini döndürür.
- myMatrix[1, 1:]: Her zamanki gibi dizin 1'e sahip satırı alır, ancak 1'den başlayarak sütun dizinlerine sahip öğeleri döndürür (ekleme her zaman Python ile çalıştığı için 1 dahil), dolayısıyla bu durumda [2, 3] döndürür.
- myMatrix[ [0,1] ]: 0 ve 1 dizinlerinin değerini döndürür, bu nedenle bizim durumumuzda ( [5, 10, 15] , [1, 2, 3] ) döndürür.
myArray = [ 5,10,15,20] olarak çalışacak bir dizi myArray tanımlayalım.
- myArray > 10: Koşula göre bir true ve false dizisi döndürür, bu nedenle bizim durumumuzda [false, false, true, true] döndürür. tihs'in myArray'in orijinal değerini değiştirmediğini, bunun yerine yeni bir awway oluşturduğunu unutmayın.
- myArray [myArray > 10]: [15, 20] koşuluna gerçekten uyan öğelerle yeni bir dizi döndürür.
- myArray + myArray: Değerlerin dizine göre toplandığı ve karşılık gelen dizine yerleştirildiği bir dizi döndürür, bizim durumumuzda [10, 20, 30, 40] döndürür.
- myArray — myArray: Değerlerin dizinden dizine çıkarıldığı ve karşılık gelen dizine yerleştirildiği bir dizi döndürür, bizim durumumuzda [0, 0, 0, 0] döndürür.
- myArray/myArray: Değerlerin dizine göre dizine bölündüğü ve karşılık gelen dizine yerleştirildiği bir dizi döndürür, bizim durumumuzda [1,1,1,1] döndürür. Herhangi bir dizinde değer olarak 0 varsa, bir sayı 0'a bölünemeyeceği için bu bir uyarı verir ve o dizin için nan döndürür, ancak diğer dizinleri her zamanki gibi böler.
- np.sqrt(myArray): Her değer aynı dizindeyse kareköklü bir dizi döndürür. Dolayısıyla, dizim [25, 16, 36] ise, işlev [ 5, 4, 6] döndürür.