我正在寻找一个矢量化的方式索引numpy.array
索引numpy.array
。索引二维数组由索引的二维数组没有循环
例如:
import numpy as np
a = np.array([[0,3,4],
[5,6,0],
[0,1,9]])
inds = np.array([[0,1],
[1,2],
[0,2]])
我想建立一个新的数组,使得数组中的每个行(i)是阵列a
的行(i)中,通过阵列INDS的行(ⅰ索引)。我期望的输出是:
array([[ 0., 3.], # a[0][:,[0,1]]
[ 6., 0.], # a[1][:,[1,2]]
[ 0., 9.]]) # a[2][:,[0,2]]
我可以用一个循环实现这一目标:
def loop_way(my_array, my_indices):
new_array = np.empty(my_indices.shape)
for i in xrange(len(my_indices)):
new_array[i, :] = my_array[i][:, my_indices[i]]
return new_array
但是我正在寻找一个纯粹的量化方案。