【发布时间】:2017-02-28 21:55:11
【问题描述】:
我有以下代码:
import numpy as np
sample = np.random.random((10,10,3))
argmax_indices = np.argmax(sample, axis=2)
即我沿axis = 2取argmax,它给了我一个(10,10)矩阵。现在,我想将这些索引值分配为 0。为此,我想索引示例数组。我试过了:
max_values = sample[argmax_indices]
但它不起作用。我想要类似的东西
max_values = sample[argmax_indices]
sample[argmax_indices] = 0
我只是通过检查max_values - np.max(sample, axis=2) 应该给出一个形状为 (10,10) 的零矩阵来验证。
任何帮助将不胜感激。
【问题讨论】:
-
为什么会这样?沿平面/轴最大化索引时的矩阵值应等于沿该平面的矩阵的最大值。不?或者 numpy 是否在 axis=2 的所有值上取最大值,而不管第 1 轴和第 2 轴是什么?
-
让我换个方式问。我的阵列是 10x10x3。所以,对于每个 i(x-axis) 和 j(y-axis),我想要最好的 k(z-axis)。我想要它的索引以及价值。上面的方法不适合吗?
-
对不起,我没听懂,但看起来你的索引是错误的,看看答案。
标签: python numpy multidimensional-array max argmax