NumPy, Indexes, Filters

Kategori: Python , 11 Eylül 2019 , JanFranco


NumPy kütüphanesine devam ediyoruz, bu yazımda indexleri göreceğiz. Kütüphanemizi import ederek başlayalım:


import numpy as np
Hızlıca bir array oluşturalım:


arr = np.arange(1, 10)
print(arr)
>>
[1 2 3 4 5 6 7 8 9]
arr[1] diyerek 2 sayısına ulaşabiliriz. arr[1:5] diyerek, 1. indexten 5. indexe kadar olan sayıları alabiliriz. Burada dikkat edilmesi gereken nokta 5. index alınmaz yani dahil değildir. [1:5] diyerek 1. indexten sona kadar alabilir, arr[:4] diyerek baştan 4. indexe kadar alabiliriz. arr[::2] diyerek baştan sonra ikişer ikişer elemanları alabiliriz:


print(arr[1])
print(arr[1:5])
print(arr[1:])
print(arr[:4])
print(arr[::2])
>>
2
[2 3 4 5]
[2 3 4 5 6 7 8 9]
[1 2 3 4]
[1 3 5 7 9]
İlk 3 sayının değerini 25 olarak değiştirelim:


arr[:3] = 25
print(arr)
>>
[25 25 25  4  5  6  7  8  9]
copy() methodu ile bir dizinin elemanlarını başka bir diziye kopyalayabiliriz ancak bunu göstermeden önce neden böyle bir method olduğunu göstermek istiyorum. arr adında bir dizi oluşturalım. arr2 adında bir değişken oluşturalım ve arr dizisine eşitleyelim. arr2 dizisinin ilk üç elemanını 25 olarak değiştirelim ve iki diziyi de konsola yazdıralım:


arr = np.arange(1, 10)
arr2 = arr
arr2[:3] = 25
print(arr2)
print(arr)
>>
[25 25 25  4  5  6  7  8  9]
[25 25 25  4  5  6  7  8  9]
İki dizide de değişiklik yapmış olduk. np.arange() methodu ile bir numpy array oluşturduk ve arr değişkeninin bu diziyi göstermesini sağladık. arr değişkeni bir pointer'dır ve nump array objesini gösterir. arr2 = arr işlemi ile arr2 değişkeninin, pointer'ının arr pointer'ını göstermesini sağladık. arr2'de bir değişiklik yaptığımızda doğal olarak arr1'de etkilenir. Aslında değişikliği nump array objesinde yapıyoruz ve iki pointer'da aynı yeri gösteriyor. Şimdi copy() methodunu kullanalım:


arr = np.arange(1, 10)
arr2 = arr.copy()
arr2[:3] = 25
print(arr2)
print(arr)
>>
[25 25 25  4  5  6  7  8  9]
[1 2 3 4 5 6 7 8 9]
Çok boyutlu bir dizide, matriste index işlemlerini görelim:


arr = np.arange(1, 21).reshape(4, 5)
print(arr)
print(arr[0, 0])
print(arr[:, :2])
print(arr[:2, :2])
>>
[[ 1  2  3  4  5]
 [ 6  7  8  9 10]
 [11 12 13 14 15]
 [16 17 18 19 20]]
1
[[ 1  2]
 [ 6  7]
 [11 12]
 [16 17]]
[[1 2]
 [6 7]]
arr[:, :2] diyerek tüm satırları ve ilk iki sütunu aldık. arr[:2, :2] diyerek ilk iki satırı ve ilk iki sütunu aldık. Dizileri filtreleyebiliriz:


arr = np.arange(1, 10)
print(arr)
print(arr > 2)
booleanArray = arr > 3
arr = arr[booleanArray]
arr = arr[arr > 5]
print(arr)
>>
[1 2 3 4 5 6 7 8 9]
[False False  True  True  True  True  True  True  True]
[6 7 8 9]
Burada arr > 2 filtresi ile değeri 2'den büyük olan sayıların olduğu indexleri True, diğerlerini False yaptık. Bir koşulu bir değişkene atarak kullanabiliriz. arr = arr[arr > 5] komutu ile değeri 5'ten küçük olan sayıları diziden attık.


Sonraki Yazı: NumPy, Operators and Array Operations
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın