3

私はpythonが初めてです。

(mxn)配列がある場合、どの列に特定の値の最大繰り返しがあるかを見つけるにはどうすればよいですか。1 ? これを行うために反復ループを書くのではなく、簡単な操作はありますか?

4

1 に答える 1

2

pythonとnumpyへようこそ。最初に配列内のどの値が1であるかを確認し、次に各列に沿ってそれをカウントし、最後にargmaxを取得することで、1が最も多い列を取得できます。コードでは、次のようになります。

>>> import numpy as np
>>> (m, n) = (4, 5)
>>> a = np.zeros((m, n))
>>> a[2, 3] = 1.
>>>
>>> a_eq_1 = a == 1
>>> repetitions = a_eq_1.sum(axis=0)
>>> np.argmax(repetitions)
3

またはよりコンパクトに:

>>> np.argmax((a == 1).sum(axis=0))
3
于 2012-11-19T23:43:54.507 に答える