一个例子:
>>> import numpy as np
>>> list = [1,2,3,4]
>>> array = np.asarray(list)
>>> np.shape(array)
(4,)
Run Code Online (Sandbox Code Playgroud)
现在说我想处理一个通用数组并分别读取变量m和行数和列数n,我会这样做:
>>> m, n = np.shape(array)
Run Code Online (Sandbox Code Playgroud)
但这会导致错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack
Run Code Online (Sandbox Code Playgroud)
对于上面的例子.在我上面的例子中,我会想到m=1并n = 4反而是一个合适的结果.我错过了什么?
你的数组有ndim = 1,这意味着len(array.shape)==1.因此,您无法将shape元组解压缩为长度== 2.
要"拉伸"你的数组以获得2dim,以防它当前有更少,请使用np.atleast_2d.
>>> x = np.arange(3.0)
>>> y = np.atleast_2d(x)
>>> y
array([[ 0., 1., 2.]])
>>> m, n = y.shape
Run Code Online (Sandbox Code Playgroud)
顺便说一句,list而array不是为在Python变量好名字.