如何在numpy中创建一个新数组,从一个数组中选择基于另一个数组的元素?

时间:2014-06-01 08:45:51

标签: python arrays numpy

这看起来很简单,但对我来说并不适用。我有一个数组,称之为A,我想根据另一个数组B的索引选择元素。

现在我一直在努力:

C = A[i for i in B]

但是这给了我一个语法错误。有没有办法正确地做到这一点?

3 个答案:

答案 0 :(得分:1)

使用NumPy数组,您可以直接通过花哨的索引来完成:

C = A[B]

答案 1 :(得分:0)

试试这个

C = [A[i] for i in B]

输出if A = [1,2,3] B = [2,1,0] 是

[3,2,1]

答案 2 :(得分:0)

i for i in B周围需要方括号。试试这个。

>>> A = np.array([10, 20, 30])
>>> B = [1, 2]
>>> C = A[[i for i in B]]
array([20, 30])