从列中提取numpy数组中的特定元素

时间:2014-10-26 11:54:56

标签: python arrays numpy scipy

我想通过索引从2d数组中提取特定元素。 索引指定列中的元素。

示例:

14,  7, 30  
44, 76, 65  
42, 87, 11

indices = (0, 1, 2) or (0, 1, 1)

=> result =  [14,76,11] or [14, 76, 65]

我不想使用任何循环,只是numpy函数和切片和东西。 我想过屏蔽,但我又不知道如何生成mask-2d-array 来自indices-array而没有直接循环。

1 个答案:

答案 0 :(得分:0)

您可以直接使用行和列索引向量:

import numpy as np

A = np.array([[14,  7, 30],
              [44, 76, 65],
              [42, 87, 11]])

print A[[0, 1, 2], range(len(A))]
print A[[0, 1, 1], range(len(A))]

(由于每列只需要一个项目,因此列索引向量为range(len(A))。)

输出:

[14 76 11]
[14 76 65]