为了账号安全,请及时绑定邮箱和手机立即绑定

ValueError:无法将输入数组从形状(65536)广播到形状

ValueError:无法将输入数组从形状(65536)广播到形状

ibeautiful 2022-11-09 17:11:49
我有一个灰度图像作为形状为(256,256,1)的数组,我想将其展平为形状(65536,)。我尝试使用 reshape 、 flatten 和 ravel 但没有任何效果。我也看了这个答案但我不太了解解决方案,因为我是 python 的初学者。我该如何解决这个问题?编辑:这是导致问题的代码行image_width = image_height = 256 X[0] = np.reshape(X[0],(image_width*image_height))其中 X 具有以下形状:(64, 256, 256, 1)数组的 dtype 是float32
查看完整描述

1 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

如果这不起作用:


In [80]: x = np.ones((256,256,1))                                                                      

In [81]: x.reshape(65536,).reshape((256,256,1)); 

你的阵列一定有什么不寻常的地方。更完整的数组描述(不仅是形状,还有 dtype)以及代码和完整的回溯可能会有所帮助。


===


你编辑表明你正在做的不止reshape。您正在尝试将重塑的(子)阵列放回原始阵列。


将维度添加到x:


In [86]: x = np.ones((1,256,256,1))                                                                                                                                               

子数组的重塑仍然有效:


In [88]: x[0].reshape(65536);                                                                          

但试图将重新整形的数组放回x会产生错误:


In [89]: x[0] = x[0].reshape(65536);                                                                   

---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

<ipython-input-89-c488a5e4f450> in <module>

----> 1 x[0] = x[0].reshape(65536);


ValueError: could not broadcast input array from shape (65536) into shape (256,256,1)

就像我写的那样,reshape不会产生这个错误;这是任务。


查看完整回答
反对 回复 2022-11-09
  • 1 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信