我有一个索引元组数组,我想用它从多维numpy数组中选择值,
import numpy
a = numpy.random.rand(10, 10, 10)
idx = [[1, 1, 2], [0, 3, 7], [9, 8, 4], [9, 9, 9]]
理解[a[i, j, k] for i, j, k in idx]
仅在知道a.ndim
时才有效。
任何提示?
答案 0 :(得分:7)
您可以将idx
的转置版本转换为元组,然后为矢量化解决方案编制索引 -
a[tuple(np.transpose(idx))]