我有一个索引元组数组,我想用它从多维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已知的情况下才有效。
[a[i, j, k] for i, j, k in idx]
a.ndim
有什么提示吗?
您可以将的转置版本转换idx为元组,然后为矢量化解决方案建立索引-
idx
a[tuple(np.transpose(idx))]