NumPy Array Filtreleme
NumPy array filtreleme, bir diziden belirli şartları sağlayan elemanları seçmenizi sağlar. Bu yöntem Python döngülerine göre daha kısa ve daha hızlı çalışır.
Örneğin bir not listesinde sadece 50 ve üzeri notları almak isteyebilirsiniz. Ayrıca bir veri setinde sadece belirli aralıktaki değerleri seçmek isteyebilirsiniz.
NumPy bu işlemi Boolean indexing yöntemiyle çok pratik hale getirir.
NumPy array filtreleme, veri bilimi eğitimi içinde veri temizleme ve analiz süreçlerini anlamak için temel konulardan biridir.
Boolean Indexing Nedir?
Öncelikle Boolean indexing mantığını anlayalım. Bu yöntem, True ve False değerleriyle filtreleme yapar.
Boolean indexing kullanımının teknik detayları için NumPy resmi dokümantasyonu incelenebilir.
Bir NumPy dizisine koşul yazdığınızda NumPy size bir maske verir.
Örnek:
import numpy as np
notlar = np.array([45, 78, 32, 90, 65])
maske = notlar >= 50
print(maske)Çıktı:
[False True False True True]Burada 50 ve üzeri değerler için True sonucu gelir. Diğer değerler için False sonucu gelir.

NumPy Array Filtreleme Nasıl Yapılır?
Filtreleme yapmak için bu maskeyi dizinin köşeli parantezleri içine yazarsınız.
Örnek:
import numpy as np
notlar = np.array([45, 78, 32, 90, 65])
gecenler = notlar[notlar >= 50]
print(gecenler)Çıktı:
[78 90 65]Bu kod sadece 50 ve üzeri notları seçer.
Adım Adım Filtreleme Örneği
Şimdi aynı işlemi iki adımda görelim:
import numpy as np
notlar = np.array([45, 78, 32, 90, 65, 50, 85])
gecenler_maskesi = notlar >= 50
gecen_notlar = notlar[gecenler_maskesi]
print(gecenler_maskesi)
print(gecen_notlar)Çıktı:
[False True False True True True True]
[78 90 65 50 85]Bu yöntem özellikle büyük veri setlerinde çok işe yarar. Çünkü döngü yazmadan hızlı seçim yaparsınız.
Kısa Kullanım
Ayrıca çoğu zaman maske değişkeni oluşturmanız gerekmez. Koşulu doğrudan köşeli parantez içinde yazabilirsiniz.
Örnek:
import numpy as np
notlar = np.array([45, 78, 32, 90, 65, 50, 85])
sonuc = notlar[notlar > 70]
print(sonuc)Çıktı:
[78 90 85]Bu kod sadece 70’ten büyük değerleri seçer.
Birden Fazla Koşulla Filtreleme
NumPy’de birden fazla koşul da kullanabilirsiniz. Ancak burada önemli bir nokta var.
Standart Python’daki and ve or kelimelerini NumPy dizilerinde kullanmayın. Bunun yerine & ve | operatörlerini kullanın.
Python temelleri, koşullar, operatörler ve NumPy kullanımını birlikte öğrenmek isteyenler için Python Yazılım Kursu içeriği doğru bir başlangıç sağlar.
| Operatör | Anlamı | |
& | Ve | |
| ` | ` | Veya |
Ayrıca her koşulu parantez içine alın. Aksi halde Python hata verebilir.
AND Operatörü ile Filtreleme
Aşağıdaki örnekte 50 ile 90 arasındaki notları seçiyoruz:
import numpy as np
notlar = np.array([45, 78, 32, 90, 65, 50, 85])
sonuc = notlar[(notlar >= 50) & (notlar < 90)]
print(sonuc)Çıktı:
[78 65 50 85]Bu örnekte iki şart aynı anda geçerli olmalıdır.
OR Operatörü ile Filtreleme
Bazı durumlarda iki koşuldan birinin sağlanması yeterlidir. Bu durumda | operatörünü kullanırsınız.
Örnek:
import numpy as np
notlar = np.array([45, 78, 32, 90, 65, 50, 85])
sonuc = notlar[(notlar < 50) | (notlar == 90)]
print(sonuc)Çıktı:
[45 32 90]Bu kod 50’den küçük değerleri veya 90’a eşit değeri seçer.
Filtrelenen Değerleri Değiştirme
NumPy array filtreleme sadece seçim için işe yaramaz. Ayrıca belirli şartlara uyan değerleri değiştirebilirsiniz.
Örnek:
import numpy as np
notlar = np.array([45, 78, 32, 90, 65])
notlar[notlar < 50] = 0
print(notlar)Çıktı:
[ 0 78 0 90 65]Bu kod 50’den küçük notları 0 yapar.
En Sık Yapılan Hata
En sık hata, and ve or kullanmaktır.
Yanlış kullanım:
notlar[(notlar >= 50) and (notlar < 90)]Doğru kullanım:
notlar[(notlar >= 50) & (notlar < 90)]Kısaca NumPy dizilerinde element bazlı karşılaştırma yaparsınız. Bu yüzden & ve | operatörlerini tercih edin.
Basit koşullarda doğrudan köşeli parantez içinde filtreleme yapabilirsiniz. Çoklu koşullarda ise & ve | operatörlerini kullanmalısınız.
Kural net:
Koşulları paranteze alın. and ve or yerine & ve | kullanın.
Bu mantığı öğrendiğinizde veri temizleme ve analiz işlemleriniz çok daha hızlı ilerler.







