Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python np.array-值太多,无法解压缩_Python_Arrays_Numpy - Fatal编程技术网

Python np.array-值太多,无法解压缩

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

我正在编写一个脚本,将图像的一部分(“代码中的子矩阵”,如下所述)保存为tif文件。运行代码时,出现以下错误:

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