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