Numpy: değeri doğru olan endeksler nasıl elde edilir


NumPy’de bir koşulun doğru olduğu endeksleri almak için aşağıdaki yöntemleri kullanabilirsiniz:

Yöntem 1: NumPy dizisinde koşulun doğru olduğu dizinleri alın

 #get indices of values greater than 10
n.p. asarray (my_array> 10 ). nonzero ()

Yöntem 2: NumPy matrisinde koşulun doğru olduğu dizinleri alın

 #get indices of values greater than 10
n.p. transpose ((my_matrix>10) .nonzero ())

Yöntem 3: NumPy matrisinin herhangi bir satırında koşulun doğru olduğu dizinleri alın

 #get indices of rows where any value is greater than 10
n.p. asarray ( np.any (my_matrix> 10 ,axis= 1 )). nonzero ()

Aşağıdaki örnekler her yöntemin pratikte nasıl kullanılacağını göstermektedir.

Örnek 1: NumPy dizisinde koşulun doğru olduğu dizinleri alma

Aşağıdaki kod, değeri 10’dan büyük olan bir NumPy dizisinin tüm endekslerinin nasıl alınacağını gösterir:

 import numpy as np

#create NumPy array
my_array = np. array ([2, 2, 4, 5, 7, 9, 11, 12, 3, 19])

#get index of values greater than 10
n.p. asarray (my_array> 10 ). nonzero ()

(array([6, 7, 9], dtype=int32),)

Sonuçtan orijinal NumPy dizisinin 6 , 7 ve 9 indeks konumlarındaki değerlerin 10’dan büyük değerlere sahip olduğunu görebiliriz.

Örnek 2: NumPy matrisinde koşulun doğru olduğu endeksleri alma

Aşağıdaki kod, değeri 10’dan büyük olan bir NumPy matrisinin tüm endekslerinin nasıl alınacağını gösterir:

 import numpy as np

#create NumPy matrix
my_matrix = np. array ([[2, 5, 9, 12],
                     [6, 7, 8, 8],
                     [2, 5, 7, 8],
                     [4, 1, 15, 11]])

#get index of values greater than 10
n.p. transpose ((my_matrix> 10 ) .nonzero ())

array([[0, 3],
       [3, 2],
       [3, 3]], dtype=int32)

Sonuçtan matrisin aşağıdaki indeks konumlarındaki değerlerin 10’dan büyük değerlere sahip olduğunu görebiliriz:

  • [0, 3]
  • [3, 2]
  • [3, 3]

Örnek 3: NumPy matrisinin herhangi bir satırında koşulun doğru olduğu endeksleri alma

Aşağıdaki kod, satırdaki herhangi bir öğedeki değerin 10’dan büyük olduğu bir NumPy matrisindeki tüm satır dizinlerinin nasıl alınacağını gösterir:

 import numpy as np

#create NumPy matrix
my_matrix = np. array ([[2, 5, 9, 12],
                     [6, 7, 8, 8],
                     [2, 5, 7, 8],
                     [4, 1, 15, 11]])

#get index of rows where any value is greater than 10
n.p. asarray ( np.any (my_matrix> 10 , axis= 1 )). nonzero ()

(array([0, 3], dtype=int32),)

Sonuçtan 0 ve 3. satırların 10’dan büyük en az bir değere sahip olduğunu görebiliriz.

Not : Bir sütunda bir koşulun doğru olduğu indeksleri almak için bunun yerine axis=0 kullanın.

Ek kaynaklar

Aşağıdaki eğitimler NumPy’de diğer genel görevlerin nasıl gerçekleştirileceğini açıklamaktadır:

NumPy dizisini değerlerle doldurma
NumPy dizisinden belirli öğeler nasıl kaldırılır
NumPy dizisindeki öğeler nasıl değiştirilir?
NumPy dizisinden belirli bir satır nasıl alınır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir