2016-02-28 75 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

相關問題