【问题标题】:Concatenate 3d and 2d array连接 3d 和 2d 数组
【发布时间】:2020-07-09 10:35:51
【问题描述】:

我有 2 个数组

第一个是这个形状

(4133,10000,12)

第二个是这个形状:

(4133,2)

我想组合这两个数组,所以我得到了这个形状

(4133,10000,12,2)

【问题讨论】:

  • 请查看答案并相应地编辑您的问题。我很乐意为您提供帮助。谢谢。
  • 不,你不想这样做。
  • 制作两个小样本数组并准确显示您想要的结果。或者表明你打算将结果用于。除了匹配的第一个维度之外,几乎没有理由加入这些。

标签: python numpy multidimensional-array concatenation


【解决方案1】:

数组沿维度的形状不是元素的总数。它是 PER 对应维度的元素数。因此,您不能将形状数组(4133,10000,12)(4133,2) 连接成一个形状数组(4133,10000,12,2)。一个更容易想到的例子是(m,n)(m,k) 的两个形状矩阵。您不能将它们连接成一个形状为(m,n,k) 的数组。

【讨论】:

    【解决方案2】:

    我不知道您所说的 combine 是什么意思,但您可以重塑数组然后让广播开始。例如:

    x = np.empty((10,8,4))
    y = np.empty((10,2))
    combined = x.reshape((10,8,4,1))*y.reshape((10,1,1,2))
    print(combined.shape)
    # (10,8,4,2)
    

    【讨论】:

    • 此解决方案将两个数组相乘(通过广播)。我不认为这就是 OP 的想法。
    猜你喜欢
    • 2019-09-16
    • 1970-01-01
    • 2021-02-07
    • 2021-12-30
    • 2022-06-10
    • 1970-01-01
    • 2017-10-07
    • 2019-09-02
    相关资源
    最近更新 更多