NumPy Array Filtreleme

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

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örAnlamı
&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.

0 0 votes
Değerlendir
guest

0 Yorum
Oldest
Newest Most Voted
Scroll to top
telefon iletisim bilgi
 whatsapp iletisim
bilgi istek formu iletisim
Arı Bilgi İletişim Numarası
0
Düşünceleriniz bizim için önemlidir lütfen yorum yapmayı unutmayınx