【发布时间】:2021-06-20 23:42:45
【问题描述】:
我想压缩两个长度相同但包含不同维度矩阵的数组。
a1 = np.ones((2,2,3),dtype=np.uint8)
a2 = np.ones((2,2,3),dtype=np.uint8)*2
b1 = np.ones((2,2),dtype=np.uint8)
b2 = np.ones((2,2),dtype=np.uint8)*2
现在两个数组是c1,c2。
c1 = [a1,a2]
c2 = [b1,b2]
当我尝试像这样压缩它们时。
res = np.array(list(zip(c1,c2)))
我收到如下错误。
Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 ValueError: 无法将输入数组从形状 (2,2,3) 广播到形状 (2,2)
为什么我会收到此错误? 我该如何解决?
【问题讨论】:
-
您收到此错误是因为
a2是3D array和a1,b1,a2是2D array所以数组a2的形状不同 -
@AnuragDabas 我该如何解决?我实际上想在之后随机化数组。
-
你能给我们你的预期输出吗?
res =? -
@RikardOlsson 为此我的预期输出将是 [(a1,b1),(a2,b2)]。
-
正如 Anurag 所说,您不能创建具有不同形状的数组数组(尝试自己描述
res的形状)。如果您尝试更详细地解释您的预期输出是什么以及您想用它做什么,那么帮助您会更容易