【发布时间】:2019-09-26 07:01:20
【问题描述】:
有这两个 numpy 数组:
a = np.array([
[
[1,2,3,0,0],
[4,5,6,0,0],
[7,8,9,0,0]
],
[
[1,3,5,0,0],
[2,4,6,0,0],
[1,1,1,0,0]
]
])
b = np.array([
[
[1,2],
[2,3],
[3,4]
],
[
[4,1],
[5,2],
[6,3]
]
])
有形状:
"a" shape: (2, 3, 5), "b" shape: (2, 3, 2)
我想将数组a 中的最后两个元素替换为数组b 中的元素,例如
c = np.array([
[
[1,2,3,1,2],
[4,5,6,2,3],
[7,8,9,3,4]
],
[
[1,3,5,4,1],
[2,4,6,5,2],
[1,1,1,6,3]
]
])
但是,np.hstack((a[:,:,:-2], b)) 会引发值错误:
除连接轴外的所有输入数组维度必须 完全匹配
通常看起来它不是正确使用的功能。附加也不起作用。
numpy 中是否有一种方法可以做到这一点,还是我需要使用 for 循环遍历数组并手动操作它们?
【问题讨论】:
-
a[:, :, -2:] = b -
或者简单地使用省略号,
a[..., -2:] = b
标签: python arrays numpy numpy-ndarray tensor-indexing