我正在尋找一個矢量化的方式索引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
但是我正在尋找一個純粹的量化方案。