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

Python 按列从numpy数组中提取特定元素,python,arrays,numpy,scipy,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函数和切片之类的东西。 我考虑过掩蔽,但我又不知道如何生成掩蔽2d阵列 从没有直接循环的索引数组中。您可以直接使用行和列索引向量: import numpy as n

我想通过索引从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函数和切片之类的东西。 我考虑过掩蔽,但我又不知道如何生成掩蔽2d阵列
从没有直接循环的索引数组中。

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

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]