我想通过索引从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而没有直接循环。
答案 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]