我有N維矩陣,其中包含具有N個參數的函數的值。每個參數都有一個離散數值。我需要在所有參數中最大化函數,而不是一個,導致尺寸的一維向量等於非最大化參數值的數量。我還需要保存其他參數取得的值。獲取軸上numpy.argmax元素的索引
要做到這一點,我想迭代地在不同軸上應用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)矩陣。但如何獲得他們的指數?我嘗試unravel_index
,直接使用args
作爲索引矩陣x
,從numpy到索引的一堆函數沒有成功。
使用numpy.where
不是一個解決方案,因爲輸入矩陣內部可能有相同的值,所以我不能從不同的原始值中辨別出來。