我最近遇到了一些错误,因为 numpy 数组的形状为 (x,) - 这些可以通过下面的代码片段轻松修复
a = np.array([1,2,3,4]) #this form produced a bug
a.shape
>>> (4,)
a.shape = [4,1] #but this change fixed it
Run Code Online (Sandbox Code Playgroud)
但这确实让我想知道,为什么 (x,) 是一维数组的默认形状?
shape的元组中的每一项都表示一个轴。当其中有一项时,意味着您的数组是一维(1 轴)的,否则它将是一个二维数组。当你这样做时,a.shape = [4,1]你只需将一维数组转换为二维数组:
In [26]: a = np.array([1,2,3,4])
In [27]: a.shape = [4,1]
In [28]: a.shape
Out[28]: (4, 1)
In [29]: a
Out[29]:
array([[1],
[2],
[3],
[4]])
Run Code Online (Sandbox Code Playgroud)