我有一个3d数组a = np.arange(108).reshape(6, 6, 3)
。我想抓取数组的某些索引,由i = np.array([[0, 1], [1, 3], [2, 1]])
定义,结果为[[3, 4, 5], [27, 28, 29], [39, 40, 41]]
。我需要一种有效的方法,因为我的实际数组要大得多。
答案 0 :(得分:2)
从i
中提取第一维和第二维索引,然后使用advanced indexing:
a[i[:,0], i[:,1], :] # or a[i[:,0], i[:,1]]
#array([[ 3, 4, 5],
# [27, 28, 29],
# [39, 40, 41]])