【发布时间】:2017-05-10 20:52:04
【问题描述】:
我有两个三维数组,a 和 b,并且想要找到 b 的二维子数组,其中元素 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 数组,我必须进行大量的整形操作——我想知道是否有更简单的方法。
【问题讨论】:
标签: python arrays numpy vectorization