在numpy中有没有一种快速的方法可以在指定位置将数组A添加到数组B?
例如,如果
B = [
[0, 1, 2],
[2, 3, 4],
[5, 6, 7]
]
和
A = [
[2, 2],
[2, 2]
]
我想从点 (0, 0) 开始将 A 加到 B 得到
C = [
[2, 3, 2],
[4, 5, 4],
[5, 6, 7],
]
当然,我可以通过扩展数组 A 来匹配 B 的形状然后使用 numpy.roll 来做到这一点,但如果 A 的大小远小于 B 的大小,这似乎不必要地慢。
编辑:
可能会环绕 - 也就是说,A 的底行被添加到 B 的顶行,A 的顶行被添加到 B 的底行
请您参考如下方法:
就地修改B
B[:2,:2] += A
否则
C = B.copy()
C[:2,:2] += A
