4D阵列中最小/最大元素的索引

时间:2016-02-28 17:21:45

标签: python numpy multidimensional-array max min

我需要沿特定轴更改4D阵列的最小/最大值。沿特定轴的最小/最大坐标由armax返回,因此对于4D阵列,a具有3D阵列。

现在从这个3D数组我需要恢复最小/最大值的完整索引。我理解最有效的方法是使用mgridargmin的结果组合使用(对于第1轴的min):

mg = np.mgrid[0:Array.shape[0], 0:Array.shape[1], 0:Array.shape[2], 0:Array.shape[3]]

Array[mg[0], np.argmin(Array, axis=1), mg[2], mg[3]] = np.min(Array)

但是,这似乎无法正常工作。

有人可以建议如何纠正上面的代码,用绝对min的数组替换第一轴的Array的最小值?

或者,如果这不是最快的方法,那么最佳解决方案是什么?

1 个答案:

答案 0 :(得分:0)

尝试使用以下内容编制索引:

Array[:, np.argmin(Array, axis=1), :, :] = ....

我认为您正在尝试将一个'平面'的所有值设置为最小值。 :slice,指定沿该轴的所有索引。

我实际上并没有尝试过运行您的示例,但我认为您不需要为此目的生成mg