Python np.array-值太多,无法解压缩
我正在编写一个脚本,将图像的一部分(“代码中的子矩阵”,如下所述)保存为tif文件。运行代码时,出现以下错误:Python np.array-值太多,无法解压缩,python,arrays,numpy,Python,Arrays,Numpy,我正在编写一个脚本,将图像的一部分(“代码中的子矩阵”,如下所述)保存为tif文件。运行代码时,出现以下错误: height, width = np.array(submatrix.shape, dtype = float) / dpi ValueError: too many values to unpack 如果我不用子矩阵,而是使用一个随机矩阵,比如np.random.random((10,10)),那么一切都正常。你发现我做错了什么吗 使用 下面是代码部分,错误是: submatrix
height, width = np.array(submatrix.shape, dtype = float) / dpi
ValueError: too many values to unpack
如果我不用子矩阵,而是使用一个随机矩阵,比如np.random.random((10,10)),那么一切都正常。你发现我做错了什么吗
使用
下面是代码部分,错误是:
submatrix = im[x_min:x_max, y_min:y_max]
dpi = size_box
height, width = np.array(submatrix.shape, dtype = float) / dpi
错误消息会告诉您问题所在。要解压缩的值太多。显然
子矩阵。形状的长度大于2
我不知道为什么会这样,因为我不知道什么是im
。但请看一下交互式提示符的以下输出:
>>> height, width = np.array([1,2], dtype = float)
>>> height, width = np.array([1,2,3], dtype = float)
Traceback (most recent call last):
File "", line 1, in
ValueError: too many values to unpack
执行时,赋值运算符左侧和右侧的序列必须具有相同的长度。每当遇到此问题时,我都会将输出设置为单个变量,然后检查该变量以查看其中的内容
>>> blah = np.array(submatrix.shape, dtype = float) / dpi
>>> dir(blah)
98%的情况下,我只是算错了数组大小。(即X、Y和Z)其他2%通常是由于可变长度数组(这真的很糟糕)
早些时候,我不会在声明的同一行使用sequence unpack,只是为了使调试更容易。然后,我在高度、宽度
行上设置了一个断点,以查看它导致问题的原因
blah = np.array(submatrix.shape, dtype = float) / dpi
height, width = blah
嗯,在别人这么说之前,有人可能会说最简单的例子可能是x,=0,0
,但这感觉有点太奇怪了。dir(废话)
?你的意思是len(blah)
还是因为它是一个数组,blah.shape
?我检查了一下,我实际上弄乱了数组的大小。。。好样的@问:是的,你是对的;len(),type(),dir()。。等等,任何能告诉我的事情。
>>> blah = np.array(submatrix.shape, dtype = float) / dpi
>>> dir(blah)
blah = np.array(submatrix.shape, dtype = float) / dpi
height, width = blah