这应该是一项简单的任务,但我很惭愧地承认我被困住了。
我有一个名为X
的numpy数组:
X.shape
是(10,3)
,看起来像是
[[ 0. 0. 13. ]
[ 0. 0. 1. ]
[ 0. 4. 16. ]
...,
[ 0. 0. 4. ]
[ 0. 0. 2. ]
[ 0. 0. 4. ]]
我想使用另一个名为idx
的numpy数组中的索引选择此数组的第1,2和第3行:
idx.shape
为(3,)
,看起来像[1 2 3]
当我尝试时
new_array = X[idx]
或其变体,
我收到错误。
如何使用另一个包含索引的numpy数组索引numpy数组?
提前为这样一个基本问题道歉。
答案 0 :(得分:3)
我这样做:
>>> import numpy as np
>>> x = np.arange(30).reshape((10, 3))
>>> x
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17],
[18, 19, 20],
[21, 22, 23],
[24, 25, 26],
[27, 28, 29]])
>>> idx = np.array([1,2,3])
>>> x[idx, ...]
array([[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
请注意,在这种情况下,如果您愿意,可以用简单的切片替换省略号:
x[idx, :]