NumPy Dizi Filtreleme
- Önceki Sayfa NumPy Dizi Sıralama
- Sonraki Sayfa NumPy Rastgele
Dizi Filtreleme
Mevcut diziden bazı elementler çıkarmak ve bunlardan yeni bir dizi oluşturmak, filtreleme (filtering) olarak adlandırılır.
NumPy'de, boole indeks listeleri ile dizileri filtrelemek için kullanırız.
Boole indeks listesi, dizideki indekslerle uyumlu olan Boole değer listesidir.
eğer indeksdeki değer True
ise bu element, filtrelenmiş dizide yer alacaktır; eğer indeksdeki değer False
ise bu element, filtrelenmiş diziden çıkarılacaktır.
Örnek
0 ve 2, 4 indekslerindeki elementlerle bir dizi oluşturmak için kullanılır:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) x = [True, False, True, False, True] newarr = arr[x] print(newarr)
Örnek, [61, 63, 65]
Neden mi?
Çünkü yeni filtre, sadece filtre dizisinin değerleri olanları içerir True
değerinin, bu durumda, 0 ve 2, 4 indekslerinde olduğunu oluşturduk.
filtre dizisi oluşturma
Örnekte, True
ve False
Değer sabit olarak kodlanmıştır, ancak genellikle filtre dizisi oluşturmak için koşullara göre kullanılır.
Örnek
Sadece 62'den büyük değerleri döndüren bir filtre arrayi oluşturun:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) # Boş bir liste oluşturma filter_arr = [] # arr'deki her elementi dolaş for element in arr: # Eğer element 62'den büyükse, değeri True olarak ayarlayın, aksi takdirde False: if element > 62: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Örnek
Bir filtre arrayi oluşturun, bu array sadece başlangıç arrayindeki çift değerleri döndürür:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) # Boş bir liste oluşturma filter_arr = [] # arr'deki her elementi dolaş for element in arr: # Eleman 2'ye tam bölünüyorsa True değerini ayarlayın, aksi takdirde False ayarlayın if element % 2 == 0: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Doğrudan Arrayden Filtre Oluşturma
Bu örnek NumPy'de çok yaygın bir görevdir ve NumPy bu sorunu çözmek için iyi bir yöntem sunar.
Koşulda doğrudan arrayi iterable değişken yerine değiştirebiliriz, bu da beklediğimiz gibi çalışır.
Örnek
Sadece 62'den büyük değerleri döndüren bir filtre arrayi oluşturun:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) filter_arr = arr > 62 newarr = arr[filter_arr] print(filter_arr) print(newarr)
Örnek
Bir filtre arrayi oluşturun, bu array sadece başlangıç arrayindeki çift değerleri döndürür:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) filter_arr = arr % 2 == 0 newarr = arr[filter_arr] print(filter_arr) print(newarr)
- Önceki Sayfa NumPy Dizi Sıralama
- Sonraki Sayfa NumPy Rastgele