猿问

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

我有一个灰度图像作为形状为(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


ibeautiful
浏览 315回答 1
1回答

30秒到达战场

如果这不起作用:In [80]: x = np.ones((256,256,1))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;In [81]: x.reshape(65536,).reshape((256,256,1));&nbsp;你的阵列一定有什么不寻常的地方。更完整的数组描述(不仅是形状,还有 dtype)以及代码和完整的回溯可能会有所帮助。===你编辑表明你正在做的不止reshape。您正在尝试将重塑的(子)阵列放回原始阵列。将维度添加到x:In [86]: x = np.ones((1,256,256,1))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;子数组的重塑仍然有效:In [88]: x[0].reshape(65536);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;但试图将重新整形的数组放回x会产生错误:In [89]: x[0] = x[0].reshape(65536);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;---------------------------------------------------------------------------ValueError&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 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不会产生这个错误;这是任务。
随时随地看视频慕课网APP

相关分类

Python
我要回答