2016-02-28 77 views
0

我需要更改沿特定轴的4D阵列的最小值/最大值。沿着特定轴的最小/最大坐标被回退armax,所以对于4D阵列a具有3D阵列。4D阵列中最小/最大元素的索引

现在从这个3D数组中,我需要恢复最小/最大值的完整索引。据我所知,最有效的方式做到这一点是结合mgridargmin使用类似(用于分钟沿第一轴)结果:

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) 

然而,这似乎并没有正常工作。

有人请告诉我们如何改正上面的代码,以绝对最小的数组来代替沿第1轴的最小数组值?

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

+0

使该行更易于阅读。它吓跑了潜在的帮助。 – hpaulj

回答

0

尝试与索引:

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

我想你想一个“平面”的所有值设置为最小值。 :是一个slice,指定沿着该轴的所有索引。

我没有真正尝试运行您的示例,但我不认为您需要为此生成mg

相关问题