NumPy Dizi Arama
Dizi Arama
Bir diziyi belirli bir değer için arayabilir ve eşleşen dizinleri döndürebilirsiniz.
Bir diziyi aramak için where()
yöntemi kullanın.
Örnek
Değerin 4 olduğu dizinleri bulun:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x =
np.where(arr == 4)
print(x)
Yukarıdaki örnek bir Tuple döndürür:(array([3, 5, 6],)
Bu, 4 değerinin dizin 3, 5 ve 6'da mevcut olduğu anlamına gelir.
Örnek
Değerlerin eşit olduğu dizinleri bulun:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x =
np.where(arr%2 == 0)
print(x)
Örnek
Değerlerin tek olduğu dizinleri bulun:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x =
np.where(arr%2 == 1)
print(x)
Arama Sıralanmış
searchsorted()
Dizide ikili arama yapan ve arama sırasını korumak için belirtilen değerin ekleneceği dizini döndüren bir yöntem var .
Yöntemin searchsorted()
sıralanmış dizilerde kullanıldığı varsayılmaktadır.
Örnek
7 değerinin eklenmesi gereken dizinleri bulun:
import numpy as np
arr = np.array([6,
7, 8, 9])
x =
np.searchsorted(arr, 7)
print(x)
Açıklanan örnek: Sıralama düzenini korumak için 7 sayısı dizin 1'e eklenmelidir.
Yöntem, aramayı soldan başlatır ve 7 sayısının artık bir sonraki değerden daha büyük olmadığı ilk dizini döndürür.
Sağ Taraftan Ara
Varsayılan olarak en soldaki dizin döndürülür, ancak side='right'
bunun yerine en sağdaki dizini döndürmek için verebiliriz.
Örnek
Sağdan başlayarak 7 değerinin eklenmesi gereken dizinleri bulun:
import numpy as np
arr = np.array([6,
7, 8, 9])
x =
np.searchsorted(arr, 7, side='right')
print(x)
Açıklanan örnek: Sıralama düzenini korumak için 7 sayısı dizin 2'ye eklenmelidir.
Yöntem, aramayı sağdan başlatır ve 7 sayısının artık bir sonraki değerden daha az olmadığı ilk dizini döndürür.
Çoklu Değerler
Birden fazla değer aramak için belirtilen değerlere sahip bir dizi kullanın.
Örnek
2, 4 ve 6 değerlerinin eklenmesi gereken dizinleri bulun:
import numpy as np
arr = np.array([1,
3, 5, 7])
x =
np.searchsorted(arr, [2, 4, 6])
print(x)
Dönüş değeri bir dizidir: [1 2 3]
sırayı korumak için orijinal diziye 2, 4, 6'nın ekleneceği üç dizini içerir.