1. ホーム
  2. python

[解決済み] numpy.where() 詳細・ステップバイステップの解説/例 [終了しました]。

2022-04-20 11:21:01

質問

を正しく理解するのに苦労しています。 numpy.where() を読んでも ドキュメント , この記事 そして この他の記事 .

どなたか、1次元配列と2次元配列のステップバイステップのコメント付き例を教えてください。

どのように解決するのですか?

しばらくいじくりまわしているうちに、あることがわかったので、他の人の助けになればと思い、ここに掲載します。

直感的に np.where は、「"」と聞いているようなものです。 この配列の中で、指定された条件を満たす項目がどこにあるか教えてください。 となります。

>>> a = np.arange(5,10)
>>> np.where(a < 8)       # tell me where in a, entries are < 8
(array([0, 1, 2]),)       # answer: entries indexed by 0, 1, 2

また、条件を満たす配列のエントリを取得するためにも使用できます。

>>> a[np.where(a < 8)] 
array([5, 6, 7])          # selects from a entries 0, 1, 2


いつ a は2次元配列です。 np.where() は、行番号の配列と、列番号の配列を返します。

>>> a = np.arange(4,10).reshape(2,3)
array([[4, 5, 6],
       [7, 8, 9]])
>>> np.where(a > 8)
(array(1), array(2))

1dの場合と同様に np.where() を使用して、2次元配列の中から条件を満たすエントリを取得します。

>>> a[np.where(a > 8)] # selects from a entries 0, 1, 2

配列([9])


a が1dの場合。 np.where() は行番号の配列と列番号の配列を返しますが、列の長さは1なので、後者は空の配列になります。