我需要沿特定轴更改4D阵列的最小/最大值。沿特定轴的最小/最大坐标由armax
返回,因此对于4D阵列,a具有3D阵列。
现在从这个3D数组我需要恢复最小/最大值的完整索引。我理解最有效的方法是使用mgrid
和argmin
的结果组合使用(对于第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的最小值?
或者,如果这不是最快的方法,那么最佳解决方案是什么?
答案 0 :(得分:0)
尝试使用以下内容编制索引:
Array[:, np.argmin(Array, axis=1), :, :] = ....
我认为您正在尝试将一个'平面'的所有值设置为最小值。 :
是slice
,指定沿该轴的所有索引。
我实际上并没有尝试过运行您的示例,但我认为您不需要为此目的生成mg
。