Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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.dstack:要解压缩的值太多_Python_Numpy - Fatal编程技术网

Python np.dstack:要解压缩的值太多

Python np.dstack:要解压缩的值太多,python,numpy,Python,Numpy,正在使用np.dstack进行试验,并得到错误: ValueError:要解压缩的值太多(应为2个) 代码如下: a = np.array((1,2,3)) b = np.array((2,3,4)) for x, y in np.dstack((a,b)): print(x,",",y) 解决方案?在您的情况下,深度方向的堆栈结果是 np.dstack((a,b))= array([[[1, 2], [2, 3], [3, 4]]]) 结果是一个形状

正在使用np.dstack进行试验,并得到错误:

ValueError:要解压缩的值太多(应为2个)

代码如下:

a = np.array((1,2,3))
b = np.array((2,3,4))
for x, y in np.dstack((a,b)):
    print(x,",",y)

解决方案?

在您的情况下,深度方向的堆栈结果是

np.dstack((a,b))=
array([[[1, 2],
        [2, 3],
        [3, 4]]])
结果是一个形状(1,3,2)的数组。因此,当您迭代这个数组时,您正在将一个长度为3的对象分配给一个长度为2的元组,因此您得到了那个ValueError

取决于你想要什么,你可以

for x, y in np.dstack((a,b))[0]:
    print(x,",",y)

返回3D数组,因此需要迭代数组的第一个索引:

for x, y in np.dstack((a,b))[0]:
    print(x,",",y)
您还可以使用:


你想做什么还不清楚

使用2个数组的逻辑迭代如下所示:

In [290]: a = np.array((1,2,3))
     ...: b = np.array((2,3,4))
     ...: 
     ...: 
In [291]: for x,y in zip(a,b):print(x,y)
1 2
2 3
3 4
或者简单地使用列表
zip
的“转置”方法:

In [292]: list(zip(a,b))
Out[292]: [(1, 2), (2, 3), (3, 4)]
dstack
将两个阵列组合在新的第三轴上,生成一个三维阵列:

In [293]: np.dstack((a,b))
Out[293]: 
array([[[1, 2],
        [2, 3],
        [3, 4]]])
In [294]: _.shape
Out[294]: (1, 3, 2)

重复这一点没有多大意义。

你可能没有得到你所认为的。根据[(numpy.dstack),它返回一个嵌套数组。尝试在np.dstack…中对x迭代
,以检查您真正拥有的内容以及如何正确地迭代它。通常,当人们使用
dstack
和其他
串联
函数时,他们会试图使用整个数组。对它进行迭代没有多大用处。对x,y进行类似
的迭代在邮政编码中(a、b):
是常见的。
In [292]: list(zip(a,b))
Out[292]: [(1, 2), (2, 3), (3, 4)]
In [293]: np.dstack((a,b))
Out[293]: 
array([[[1, 2],
        [2, 3],
        [3, 4]]])
In [294]: _.shape
Out[294]: (1, 3, 2)