索引具有索引数组的多维数组

时间:2021-10-11 22:30:09

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))]