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