在Python中,我使用numpy包对矩阵进行一些计算。在下面的代码中,我试图从我的原始文件计算一个新的矩阵。xFactors
和yFactors
都是3x3
矩阵。你知道吗
size = self.matrix.shape
for x in range(1, size[0] - 1):
for y in range(1, size[1] - 1):
subMatrix = self.matrix[x-1:x+2, y-1:y+2]
newX = (xFactors * subMatrix).sum()
newY = (yFactors * subMatrix).sum()
self.newMatrix[x-1][y-1] = newX + newY
我的问题是这个代码效率很低。我用500x500
矩阵测试了te代码,它最多需要两秒钟。你有什么想法我可以优化这个代码?你知道吗
如果
xFactors
和self.matrix
都是numpy.array
而不是numpy.matrix
(换句话说,如果您在计算newX和newY时使用的是元素相乘而不是矩阵相乘),那么这应该可以更快地完成同样的事情:在原始代码中,没有明确说明xFactors和yFactors是正方形的。如果不是这样的话,如果上面的加法不能正确播放的话,就需要根据需要重复它们,使它们成为正方形。你知道吗
相关问题 更多 >
编程相关推荐