1. ホーム
  2. python

[解決済み] Numpy 既存の値より大きい値の最初の出現回数

2022-04-24 20:06:07

質問

numpyで1次元の配列を持っていて、ある値がnumpyの配列の値を超えるインデックスの位置を求めたいのですが、どうすればよいですか?

aa = range(-10,10)

の位置を検索します。 aa ここで、値 5 を超える。

解決方法は?

これは少し速いです(そして、よりきれいに見えます)。

np.argmax(aa>5)

以来 argmax は最初の True ("In case of multiple occurrence of the maximum values, the indices corresponding to the first occurrence are returned.") そして、別のリストを保存しない。

In [2]: N = 10000

In [3]: aa = np.arange(-N,N)

In [4]: timeit np.argmax(aa>N/2)
100000 loops, best of 3: 52.3 us per loop

In [5]: timeit np.where(aa>N/2)[0][0]
10000 loops, best of 3: 141 us per loop

In [6]: timeit np.nonzero(aa>N/2)[0][0]
10000 loops, best of 3: 142 us per loop