0%

Numpy 学习笔记(一)—— rank 1 array

参考:

在使用 Numpy 的 ndarry 数据结构时,时常会遇到这样一种特殊的结构,它的shape(n,),这种数组称为 rank 1 array (秩为1的数组):

1
2
3
4
5
import numpy as np

a = np.random.randn(5)
print(a) # [ 0.50290632 -0.29691140 0.94529604 -0.82126861 -1.46269164]
print(a.shape) # (5,)

这种数组的产生可能有以下几种原因:

  • 输入 array 时,[]的数量不够(只有一重括号时就会产生这种数组);
  • 使用了zip()函数;
  • 数组切片时,索引只用了一个值(应该使用:代表整列,如a[1, :]代表第二行)。

可以使用[:, None][None, :]来增加数组维数,或者使用reshape()来改变形状,从而解决这个问题。

为了避免此类问题的发生,在创建数组时,即便是一维向量,也应该把两个维度的尺寸都输入进去,如np.zeros((3, 1))