Numpy: 値が true のインデックスを取得する方法


次のメソッドを使用して、NumPy で条件が true となるインデックスを取得できます。

方法 1: NumPy 配列で条件が true のインデックスを取得する

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

方法 2: NumPy 行列で条件が true のインデックスを取得する

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

方法 3: NumPy 行列の任意の行で条件が true となるインデックスを取得する

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

次の例は、各メソッドを実際に使用する方法を示しています。

例 1: NumPy 配列で条件が true のインデックスを取得する

次のコードは、値が 10 より大きい NumPy 配列のすべてのインデックスを取得する方法を示しています。

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

結果から、元の NumPy 配列のインデックス位置 6、7、9値が 10 より大きい値であることがわかります

例 2: NumPy 行列で条件が true のインデックスを取得する

次のコードは、値が 10 より大きい NumPy 行列のすべてのインデックスを取得する方法を示しています。

 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)

結果から、行列の次のインデックス位置の値が 10 より大きい値であることがわかります。

  • [0、3]
  • [3、2]
  • [3、3]

例 3: NumPy 行列の任意の行で条件が true となるインデックスを取得する

次のコードは、行内のいずれかの要素の値が 10 より大きい NumPy 行列内のすべての行インデックスを取得する方法を示しています。

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

結果から、行03に 10 より大きい値が少なくとも 1 つあることがわかります。

: 列内の条件が true であるインデックスを取得するには、代わりにaxis=0を使用します。

追加リソース

次のチュートリアルでは、NumPy で他の一般的なタスクを実行する方法について説明します。

NumPy 配列に値を入力する方法
NumPy配列から特定の要素を削除する方法
NumPy配列内の要素を置換する方法
NumPy配列から特定の行を取得する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です