2

numpy は、多次元配列内の N 個の最大要素を評価できますか? 言う:

import numpy as np
a=[1,2,3]
b=a.max(num_of_max_elements=2) #I know it won't work, and I want it to be 2 and 3
4

3 に答える 3

2

これを行う最も簡単な方法は、並べ替えてから最後のn数字を使用することです。これは、元の配列を変更せずに行うこともできます。10x10 配列で最大の 10 個の数値を見つける方法の例を次に示します。

a = numpy.random.randint(1000, size=100).reshape(10, 10)
indices = a.ravel().argsort()
print a.ravel()[indices[-10:]]

このコードは次のようなものを出力します

array([909, 917, 926, 936, 952, 960, 961, 964, 969, 993])
于 2012-04-13T19:48:02.017 に答える
-1

配列を逆に並べ替えて最初のN要素を取得するのがおそらく最も効率的です。

 a = [1,2,3]
 sorted(a, reverse=True)[:2]

多次元配列で最大の要素を見つけたい場合は、a.ravel()which を使用して 1 次元に展開します

書かれているように、これは実際には numpyを使用しませんが、 で同様のことを行うことができnp.sortます。[::-1]

np.sort(a.ravel())[::-1][:2]
于 2012-04-13T19:49:23.703 に答える