我有兩個三維陣列a和b,並且希望找到b的2D子陣列,其中a沿着第三個軸線具有最小值,即在另一個陣列中查找對應於最小值的陣列
a=n.random.rand(20).reshape((5,2,2))
b=n.arange(20).reshape((5,2,2))
c=n.argmin(a,2) #indices with minimal value of a
d=n.zeros_like(c) #the array I want
for i in range(5):
for j in range(2):
d[i,j] = b[i,j,c[i,j]]
有沒有一種方法,我可以得到這些值沒有雙循環?
我知道這個答案: replace min value to another in numpy array 但是如果我想這對我的3D陣列的工作,我不得不做大量的重塑操作的 - 我不知道是否有更簡單的東西。
重塑這些到(5,2),結果應該看起來像'mgrid'版'ogrid'建議的另一個答案。 – hpaulj
@hpaulj是的,不幸的是我不熟悉那個功能。 – Kasramvd