我有一个更大的2D数组,我想添加一个更小的2D数组。
from numpy import *
x = range(25)
x = reshape(x,(5,5))
print x
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]
y = [66,66,66,66]
y = reshape(y,(2,2))
print y
[[66 66]
[66 66]]
我想从y
开始将数组x
中的值添加到1,1
,以便x
看起来像这样:
[[ 0 1 2 3 4]
[ 5 72 73 8 9]
[10 77 78 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]
切片可以吗?有人可以建议切片语句的正确格式来实现这个吗?
由于
答案 0 :(得分:5)
x[1:3, 1:3] += y
将y就地添加到要修改的x切片中。请注意,numpy索引从0开始计数,而不是1.另外,请注意,对于y的特定选择,
x[1:3, 1:3] += 66
将以更简单的方式达到同样的效果。
答案 1 :(得分:4)
是的,你可以在numpy数组上使用切片:
In [20]: x[1:3,1:3] += y
In [21]: print x
[[ 0 1 2 3 4]
[ 5 72 73 8 9]
[10 77 78 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]