【发布时间】:2020-08-05 15:35:24
【问题描述】:
我有一个尺寸为 (X, Y, 8) 的 3D 数组和一个尺寸为 (X, Y) 的 2D 数组。我知道有一个简单的解决方案,但似乎无法弄清楚如何将 2D 数组附加到 3D 数组,以使输出具有维度(X、Y、9)。我已经尝试过附加、连接、dstack、column_stack() 具有一百万种不同的变化(在我如何格式化输入数组、哪个轴等)并且不断收到错误“所有输入数组必须具有相同的维数" 或 "除连接轴外的所有输入数组维度必须完全匹配。"
我已经查看并关注了每个相关的 SO 问题。我似乎无法弄清楚这么简单的事情,这让我发疯了。帮忙?
【问题讨论】:
-
听起来你是在随意尝试,不了解底层机制。你只能
concatenatea (X,Y,1) 到你的 (X,Y,8)。忘记所有那些append和stack。将维度添加到 (X,Y),然后只需使用np.concatenate。并认真对待这些错误消息! -
获得好答案的另一种方法是提供一个小示例,其中包含实际代码和错误消息(以及回溯)。然后我们可以准确指出你做错了什么!
-
怎么样 np.concatenate((np.zeros([x,y,8]), np.ones([x,y]).reshape([x,y,1] )), 轴 = 2) ? (当然用你的数组替换 np.zeros 和 np.ones)
-
np.concatenate((arr3d, arr2d[..., np.newaxis]), axis=-1)