如何在 python 中获取矩阵的子数组

how to get subarray of matrix in python

假设我有以下数组 j:

[[1, 2, 3, 4, 5], 
 [7, 7, 7, 6, 4], 
 [1, 1, 2, 0, 0]]

我怎样才能得到 2x2 的子数组,这样子数组就是:

[[1, 2], 
 [7, 7],]

直觉上我假设 j[0:2][0:2] 会成功,但我得到:

[[1, 2, 3, 4, 5], [7, 7, 7, 6, 4]]

你需要明确地说出你想从每一行中得到什么:

[r[0:2] for r in j[0:2]]

在 numpy 中你可以这样做:

import numpy as np 
j = np.array([[1, 2, 3, 4, 5], 
 [7, 7, 7, 6, 4], 
 [1, 1, 2, 0, 0]])

j[:2, :2]

输出:

>>
[[1 2]
 [7 7]]

您还可以这样做:

[j[i][:2] for i in range(2)]

[[1, 2], 
 [7, 7]]