N 個のパラメーターを持つ関数の値を含む N 次元の行列があります。各パラメーターには、個別の数の値があります。1 つを除くすべてのパラメーターで関数を最大化する必要があるため、最大化されていないパラメーターの値の数に等しいサイズの 1 次元ベクトルが得られます。また、他のパラメーターによって取得される値を保存する必要があります。
そのために、さまざまな軸に繰り返し適用numpy.max
して、行列の次元を減らして必要なものを見つけたいと考えました。最終的なベクトルは、省略したパラメーターのみに依存します。
ただし、最終要素の元のインデックス (他のパラメーターによって取得された値に関する情報が含まれています) を見つけるのに問題があります。numpy.argmax
と同じように使用するnumpy.max
ことはできますが、元のインデックスを取得できません。
私がしようとしているものの例は次のとおりです。
x = [[[1,2],[0,1]],[[3,4],[6,7]]]
args = np.argmax(x, 0)
これは戻ります
[[1 1]
[1 1]]
これは、argmax が元の行列内の要素 (2,1,4,7) を選択していることを意味します。しかし、それらのインデックスを取得する方法は? 私は、 numpy から index までの一連の関数を matrix のインデックスとして直接unravel_index
使用して試しましたが、成功しませんでした。args
x
入力行列の内部に等しい値がある可能性があるため、使用numpy.where
は解決策ではありません。そのため、元の値が異なると区別できません。