Numpy: jak uzyskać indeksy, których wartość jest prawdziwa


Aby uzyskać indeksy, dla których warunek jest spełniony w NumPy, możesz użyć następujących metod:

Metoda 1: Uzyskaj indeksy, gdzie warunek jest spełniony w tablicy NumPy

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

Metoda 2: Uzyskaj indeksy, w których warunek jest spełniony w macierzy NumPy

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

Metoda 3: Uzyskaj indeksy, w których warunek jest spełniony w dowolnym wierszu macierzy NumPy

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

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.

Przykład 1: Uzyskaj indeksy, gdy warunek jest spełniony w tablicy NumPy

Poniższy kod pokazuje, jak uzyskać wszystkie indeksy tablicy NumPy, której wartość jest większa niż 10:

 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),)

Z wyniku widzimy, że wartości na pozycjach indeksu 6 , 7 i 9 oryginalnej tablicy NumPy mają wartości większe niż 10.

Przykład 2: Uzyskaj indeksy, gdy warunek jest spełniony w macierzy NumPy

Poniższy kod pokazuje, jak uzyskać wszystkie indeksy macierzy NumPy, których wartość jest większa niż 10:

 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)

Z wyniku widzimy, że wartości w następujących pozycjach indeksowych macierzy mają wartości większe niż 10:

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

Przykład 3: Uzyskaj indeksy, w których warunek jest spełniony w dowolnym wierszu macierzy NumPy

Poniższy kod pokazuje, jak uzyskać wszystkie indeksy wierszy w macierzy NumPy, gdzie wartość jest większa niż 10 w dowolnym elemencie wiersza:

 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),)

Z wyniku widzimy, że wiersze 0 i 3 mają co najmniej jedną wartość większą niż 10.

Uwaga : Aby uzyskać indeksy, w których warunek w kolumnie jest spełniony, zamiast tego użyj osi=0 .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w NumPy:

Jak wypełnić tablicę NumPy wartościami
Jak usunąć określone elementy z tablicy NumPy
Jak zamienić elementy w tablicy NumPy
Jak uzyskać określony wiersz z tablicy NumPy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *