是否有办法从指定位置开始组合两个不同尺寸的2d阵列(最好是numpy阵列),例如:从位置1 1开始将3x3合并为4x4阵列:
阵列A
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
阵列B
5 5 5
5 5 5
5 5 5
结果数组
1 1 1 1
2 5 5 5
3 5 5 5
4 5 5 5
更多说明:
答案 0 :(得分:2)
In [32]: a2 = np.loadtxt(StringIO.StringIO("""5 5 5\n 5 5 5\n 5 5 5"""))
In [33]: a1 = np.loadtxt(StringIO.StringIO("""1 1 1 1\n 2 2 2 2\n 3 3 3 3\n 4 4 4 4"""))
In [34]: a1[1:, 1:] = a2
In [35]: a1
Out[35]:
array([[ 1., 1., 1., 1.],
[ 2., 5., 5., 5.],
[ 3., 5., 5., 5.],
[ 4., 5., 5., 5.]])
答案 1 :(得分:2)
In [231]: def merge(a, b, pos):
...: res=a[:]
...: res[pos[0]:pos[0]+b.shape[0], pos[1]:pos[1]+b.shape[1]]=b
...: return res
In [232]: C=merge(A, B, (1,1))
...: print C
[[1 1 1 1]
[2 5 5 5]
[3 5 5 5]
[4 5 5 5]]