如何从带有索引的二维数组中获取值

时间:2014-03-27 01:09:38

标签: python numpy

例如,我有以下二维数组。

>>>np.array(((1,2),(3,4),(5,6))) 
>>>array([[1, 2],
          [3, 4],
          [5, 6]])

我想从每一列中获取一个元素。例如,我想从第2列获取3,从第2列获取6 怎么能用指数来做[1,2]。 1表示第1列中的第2个元素,2表示第2列中的第3个元素

1 个答案:

答案 0 :(得分:3)

您可以使用所谓的fancy indexing

In [57]: x = np.array(((1,2),(3,4),(5,6)))

# np.arange(x.shape[1]) gives [0,1], the column indices
# needed to select "one from each column"
In [58]: x[[1,2], np.arange(x.shape[1])]
Out[58]: array([3, 6])

或者您可以使用np.choose

In [44]: np.choose([1,2], x)
Out[44]: array([3, 6])