Numpy where() birden çok koşulla nasıl kullanılır?
NumPywhere() işlevini birden çok koşulla kullanmak için aşağıdaki yöntemleri kullanabilirsiniz:
Yöntem 1: Where() işlevini OR ile kullanın
#select values less than five or greater than 20 x[np. where ((x < 5) | (x > 20))]
Yöntem 2: Where() işlevini AND ile birlikte kullanın
#select values greater than five and less than 20 x[np. where ((x > 5) & (x < 20))]
Aşağıdaki örnekte her yöntemin pratikte nasıl kullanılacağı gösterilmektedir.
Yöntem 1: Where() işlevini OR ile kullanın
Aşağıdaki kod, NumPy dizisindeki 5’ten küçük veya 20’den büyük her değerin nasıl seçileceğini gösterir:
import numpy as np #define NumPy array of values x = np. array ([1, 3, 3, 6, 7, 9, 12, 13, 15, 18, 20, 22]) #select values that meet one of two conditions x[np. where ((x < 5) | (x > 20))] array([ 1, 3, 3, 22])
NumPy dizisindeki dört değerin 5’ten küçük veya 20’den büyük olduğunu unutmayın.
Ayrıca, kaç değerin koşullardan birini karşıladığını bulmak için boyut işlevini de kullanabilirsiniz:
#find number of values that are less than 5 or greater than 20
(x[np. where ((x < 5) | (x > 20))]). size
4
Yöntem 2: Where() işlevini AND ile birlikte kullanın
Aşağıdaki kod, 5’ten büyük ve 20’den küçük bir NumPy dizisindeki her bir değerin nasıl seçileceğini gösterir:
import numpy as np #define NumPy array of values x = np. array ([1, 3, 3, 6, 7, 9, 12, 13, 15, 18, 20, 22]) #select values that meet two conditions x[np. where ((x > 5) & (x < 20))] array([6, 7, 9, 12, 13, 15, 18])
Çıkış dizisi, orijinal NumPy dizisinden 5’ten büyük ve 20’den küçük olan yedi değeri görüntüler.
Her iki koşulu kaç değerin karşıladığını belirlemek için yine boyut fonksiyonunu kullanabilirsiniz:
#find number of values that are greater than 5 and less than 20
(x[np. where ((x > 5) & (x < 20))]). size
7
Ek kaynaklar
Aşağıdaki eğitimler NumPy’de diğer genel işlemlerin nasıl gerçekleştirileceğini açıklamaktadır:
NumPy dizisinin modu nasıl hesaplanır
NumPy dizisinde değer endeksi nasıl bulunur?
Bir işlevi NumPy dizisine nasıl eşleyebilirim?