一个例子:
>>> import numpy as np
>>> list = [1,2,3,4]
>>> array = np.asarray(list)
>>> np.shape(array)
(4,)
现在假设我要处理一个通用数组,并将行数和列数分别读入变量 m
和 n
,我会这样做:
>>> m, n = np.shape(array)
但这会导致错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack
对于上面的例子。在我上面的示例中,我认为 m=1
和 n = 4
会是一个合适的结果。我错过了什么?
最佳答案
您的数组有 ndim=1,这意味着 len(array.shape)==1
。因此,您不能将 shape
元组解压为 length==2。
要“拉伸(stretch)”您的数组以使其具有 2dim,以防它当前具有更少的空间,请使用 np.atleast_2d
.
>>> x = np.arange(3.0)
>>> y = np.atleast_2d(x)
>>> y
array([[ 0., 1., 2.]])
>>> m, n = y.shape
顺便说一句,list
和 array
不是 python 中变量的好名称。
关于python - 解压缩通用数组的 numpy 数组形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31571971/