给定一个二维numpy数组
A
一个一维核阵列
col
具有相同的行数和列范围值
一个
,如何获取新的1D数组,该数组从
一个
?
例子:
np.random.seed(0)
A = np.random.randint(10, size=(5, 3))
A
# array([[5, 0, 3],
# [3, 7, 9],
# [3, 5, 2],
# [4, 7, 6],
# [8, 8, 1]])
col = np.random.randint(A.shape[1], size=A.shape[0])
col
# array([2, 2, 0, 1, 1])
基于
col列
,我想从第0行和第1行获取元素2,从第2行获取元素0,从第3行和第4行获取元素1:
[3, 9, 3, 7, 8]
.
正常的索引不起作用:
A[col]
# array([[3, 5, 2],
# [3, 5, 2],
# [5, 0, 3],
# [3, 7, 9],
# [3, 7, 9]])
A[:, col]
# array([[3, 3, 5, 0, 0],
# [9, 9, 3, 7, 7],
# [2, 2, 3, 5, 5],
# [6, 6, 4, 7, 7],
# [1, 1, 8, 8, 8]])