我有numpy中的两个数组。第一个是2d数组,可以认为它是一个向量列表。第二个是1d数组,可以认为它是2d数组中的索引列表。在numpy中使用1d数组选择多个元素
我想使用1d数组的索引来选择2d数组的元素。现在我一直在做
z=rnd.rand(2,10) # a list of 2d vectors of length 10
z_idx=rnd.randint(2,size=z.shape[1]) #indices selecting a dimension of the 2d vector
result=np.array([z[z_idx[i],i] for i in xrange(len(z_idx))])
但是这很慢。
有没有更好的方法在numpy中做到这一点?
在numpy的,您可以使用(布尔)蒙版选择数组的元素。你看过吗?一般来说,您可以从您的一维阵列中创建这样的遮罩,然后将此遮罩应用于2D阵列。 –