给定一个矩阵 A、一个行索引列表和一个列索引列表,如何有效地提取以行和列索引为中心的大小为 k 的平方子矩阵?
例如:
A = array([[12, 6, 14, 8, 4, 1],
[18, 13, 8, 10, 9, 19],
[ 8, 15, 6, 5, 6, 18],
[ 3, 0, 2, 14, 13, 12],
[ 4, 4, 5, 19, 0, 14],
[16, 8, 7, 7, 11, 0],
[ 3, 11, 2, 19, 11, 5],
[ 4, 2, 1, 9, 12, 12]])
r = np.array([2, 5])
c = np.array([3, 2])
k = 3
输出应该是A[1:4, 2:5]
和A[4:7, 1:4]
。所以基本上,输出是大小的平方子矩阵,kxk
并以 [r,c] 元素为中心(在这种情况下为 A[2,3] 和 A[5,2])
如何高效而优雅地做到这一点?谢谢