给定一个矩阵a,例如A = np.array([[1,2,3,4],[5,6,7,8]])
和两个列表,一个是行索引,一个是列索引,例如row=(0,1), column=(0,2)
,我想在python中提取矩阵a对应的行和列,所以在这个例子中,我想要的结果是np.array([[1, 3], [5,7]))
。我知道如何处理矩阵中的单个条目,但不知道如何处理列表中的所有条目,而且我总是失去结构。到目前为止,我得到的最好结果是A[row, column]
,它不返回列出的所有索引,只返回A=np.array(([1,7]))
。我也知道存在一个切片命令,但这只适用于连续的行和列,而不是这种情况。
提前非常感谢!
看起来你想:
A[np.array(row)[:,None], column]
输出:
array([[1, 3],
[5, 7]])
中间:
np.array(row)[:,None]
array([[0],
[1]])
np.array([[A[r][c] for c in column] for r in row]) # array([[1, 3], [5, 7]])