参考:
在使用 Numpy 的 ndarry 数据结构时,时常会遇到这样一种特殊的结构,它的shape
为(n,)
,这种数组称为 rank 1 array (秩为1的数组):
1 | import numpy as np |
这种数组的产生可能有以下几种原因:
- 输入 array 时,
[]
的数量不够(只有一重括号时就会产生这种数组); - 使用了
zip()
函数; - 数组切片时,索引只用了一个值(应该使用
:
代表整列,如a[1, :]
代表第二行)。
可以使用[:, None]
或[None, :]
来增加数组维数,或者使用reshape()
来改变形状,从而解决这个问题。
为了避免此类问题的发生,在创建数组时,即便是一维向量,也应该把两个维度的尺寸都输入进去,如np.zeros((3, 1))
。