在Python中只取矩阵的一部分



给定一个矩阵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]])

最新更新