I have an array of index tuples and I would like to use it to pick out values from a multidimensional numpy array,
我有一个索引元组数组,我想用它从多维numpy数组中挑选出值,
import numpy
a = numpy.random.rand(10, 10, 10)
idx = [[1, 1, 2], [0, 3, 7], [9, 8, 4], [9, 9, 9]]
The comprehension [a[i, j, k] for i, j, k in idx]
only worked if a.ndim
was known.
理解[a [i,j,k]为i,j,k在idx中]只有在知道a.ndim时才有效。
Any hints?
任何提示?
1 个解决方案
#1
7
You could convert the transposed version of idx
to a tuple and then index for a vectorized solution -
您可以将idx的转置版本转换为元组,然后为矢量化解决方案编制索引 -
a[tuple(np.transpose(idx))]
#1
7
You could convert the transposed version of idx
to a tuple and then index for a vectorized solution -
您可以将idx的转置版本转换为元组,然后为矢量化解决方案编制索引 -
a[tuple(np.transpose(idx))]