多次元numpy配列で多くの操作を行う必要があります。そのために私はこれについて最善のアプローチを試しています。多次元配列を繰り返し処理し、繰り返しインデックスを操作する最良の方法を教えてください
それでは、私はこのような配列を持っているとしましょう:
A = np.random.uniform(0, 1, size = 100).reshape(20, 5)
私の目標は、各エントリの最大値numpy.amax()
を取得することであり、それがインデックスです。
A[0] = [ 0.64570441 0.31781716 0.07268926 0.84183753 0.72194227]
私は最大値とその最大[0.84183753][0, 3]
のインデックスを取得したい:だからA[0]
このようなものかもしれません。結果の具体的な表現は一例にすぎません。私は水平インデックスだけを必要とします。
私はnumpyののnditerオブジェクトを使用してみました:
A_it = np.nditer(A, flags=['multi_index'], op_flags=['readwrite'])
while not A_it.finished:
print(np.amax(A_it.value))
print(A_it.multi_index[1])
A_it.iternext()
私は繰り返しでそのように、すべての配列の要素とそのインデックスにアクセスすることができますが、私はそれぞれにnumpy.amax()
機能をもたらすことができるようには見えません。要素と索引を一緒に使用することができます。 nditer
オブジェクトを使ってもできますか?
また、Numpy: Beginner nditerでは、nditer
を使用するか、numpyの繰り返しを使用すると、通常、私は何か間違っていることを意味します。しかし、私は繰り返しなしでここで私の目標を達成するための別の便利な方法を見つけることができません。明らかに、私は一般的にnumpyとpythonで総初心者ですので、検索やヒントのキーワードは非常に高く評価されています。
A.argmax(axis = 1)? –
'nditer'を使わないでください。定期的なPython forループを使用してください。 – hpaulj