我有一个这样的矩阵:
B = array([[1, 1, 2, 3, 3],
[4, 4, 5, 6, 6],
[7, 7, 8, 9, 9]])
字符串
我希望能够得到这样的结果:
result = np.array([[1, 4, 6, 8, 3],
[4, 13, 15, 17, 6],
[7, 22, 24, 26, 9]])
型
我保留了每行的第一个元素和最后一个元素,但添加了前3个元素以获得中间的内容。
我有一个代码,使用一个循环,这是下面使用循环。
for i in range(0,3):
for j in range(1,4):
C[i,j] = np.sum(B[i,j-1:j+2])
C[i][0] = B[i][0]
C[i][-1] = B[i][-1]
型
但是我想要一个没有循环的优化方法。非常感谢
2条答案
按热度按时间hc2pp10m1#
使用
scipy.signal.convolve2d
和1x3内核计算2D卷积:字符串
输出量:
型
vbopmzt12#
你不需要循环。
字符串