python - 为什么使用形状为 (x,) 而不是 (x,1) 的数组?

标签 python numpy

<分区>

由于 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 

但这确实让我想知道,为什么 (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]])

关于python - 为什么使用形状为 (x,) 而不是 (x,1) 的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43184493/

相关文章:

python - 在 python 中获取异常类名?

python - 在python中查找具有稀疏矩阵特定特征值的特征向量

python - 在 python 中处理非常大的 netCDF 文件

python - 如何在 Python OpenCV 中读取图像

python - 阻止 Python enumerate() 将字符串拆分为字符

python - R 相当于 python numpy slice : [:, 无,:]

python - Matplotlib - 如何从图中去除多余的空格而不需要保存它?

python - 当需要其他变量时如何解包元组?

python - 从 Pandas DataFrame 进行预测

python - 使用列表理解根据条目数量创建标签和缩写的常量字典的最佳方法