【发布时间】:2019-06-17 20:19:08
【问题描述】:
我有一个非常大的矩阵 (nxn),我将为其构建尺寸为 mxm 的相交图块(子矩阵)。每个连续子矩阵之间会有一个step 的偏移量。这是n=8, m=4, step=2 的示例:
import numpy as np
matrix=np.random.randn(8,8)
n=matrix.shape[0]
m=4
step=2
这将存储所有角索引(x,y),我们将从中获取 4x4 natrix:(x:x+4,x:x+4)
a={(i,j) for i in range(0,n-m+1,step) for j in range(0,n-m+1,step)}
子矩阵会这样提取
sub_matrices = np.zeros([m,m,len(a)])
for i,ind in enumerate(a):
x,y=ind
sub_matrices[:,:,i]=matrix[x:x+m, y:y+m]
有没有更快的方法来初始化这个子矩阵?
【问题讨论】:
标签: python python-3.x numpy