【问题标题】:ValueError: all the input array dimensions for the concatenation axis must match exactlValueError:连接轴的所有输入数组维度必须完全匹配
【发布时间】:2021-05-09 07:19:51
【问题描述】:

我有一个形状为 (84, 13, 1036800) 的 numpy 数组,我想向它添加一个长度为 1036800 的一维数组,以便形状变为 (84, 14, 1036800)。我尝试连接和堆栈选项,但不断收到此尺寸错误。

【问题讨论】:

  • 新数组的形状必须为 (84,1,1036800)。

标签: python numpy


【解决方案1】:

您可以使用np.concatenate,但您应该先广播一维数组,将第一个轴乘以 84 次以适应形状。

a = np.random.randn(84, 13, 1036800)
b = np.random.randn(1036800)
print(a.shape, b.shape)
>>>
(84, 13, 1036800) (1036800,)

b_broadcasted = np.broadcast_to(b, [a.shape[0], 1, a.shape[2]])
print(b_broadcasted.shape)
>>>
(84, 1, 1036800)

np.concatenate([a, b_broadcasted], axis=1).shape
>>>
(84, 14, 1036800)

【讨论】:

猜你喜欢
  • 2018-07-08
  • 2017-11-26
  • 2020-02-19
  • 2017-10-20
  • 2020-07-25
  • 2019-05-16
  • 2020-08-02
  • 2020-02-03
  • 1970-01-01
相关资源
最近更新 更多