【问题标题】:Combining 2d arrays to 3d initialization error将 2d 数组组合到 3d 初始化错误
【发布时间】:2020-02-21 07:02:25
【问题描述】:

所以我知道如何将 2 个 2d 数组组合成 3d。我做了这样的事情:

a = np.arange(25).reshape(5,5)
b = np.arange(26,51).reshape(5,5)
c = np.stack((a,b))

这似乎工作正常。问题是我需要遍历一个循环来堆叠多个二维数组,并且我需要输入这样的二维数组的数量(即 # 未知)。

所以我做到了:

t = np.array([]).reshape(0,5,5)
t = np.stack((t,a)) #loop over each 2d array represented by a

我收到此错误:

ValueError Traceback(最近调用 最后)在 ----> 1 t = np.stack((t,a))

array_function internals> in stack(*args, **kwargs)

~/anaconda3/envs/pytorch/lib/python3.7/site-packages/numpy/core/shape_base.py 在堆栈中(数组,轴,出) 423 个形状 = {arr.shape 用于数组中的 arr} 424如果len(形状)!= 1: --> 425 raise ValueError('所有输入数组必须具有相同的形状') 426 427 结果_ndim =数组[0].ndim + 1

ValueError:所有输入数组必须具有相同的形状

有什么建议吗?谢谢!

【问题讨论】:

  • 将它们组合成一个列表,然后只做一个stack。它更高效,更容易正确。

标签: python arrays numpy


【解决方案1】:

没关系。我这样做了:

data = np.empty((0,25))
data = np.vstack((data,one_row(random.randint(1, 3)))) #one_row returns a 1d array
input_data = np.reshape(input_data,(num_samples,5,5))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 2022-01-05
    • 2015-08-05
    • 2022-07-23
    相关资源
    最近更新 更多