Numpy库学习——向量表示

来源:互联网 发布:吾知的小说 编辑:程序博客网 时间:2024/05/17 04:14

Numpy库学习——向量表示

在机器学习和深度学习的编程过程中,为了提高程序的运行速度,通常将模型表达式转换为向量表达式(向量化),即利用矩阵运算思想提高运行效率。那么,在Python中究竟如何利用Numpy库定义一个向量,以及如何判断否为向量呢?

(一)Python中向量的特征

通常情况下,Python中向量和数组之间界限比较模糊,很多时候是通用的,但是在有时候数组不一定能够表示向量,比如,利用Numpy中random模块中的randn函数生成的一维数组,既不是行向量,也不是列向量,而是秩为1的数组:

这里写图片描述

上述秩为1的一维数组仅有一个方括号,而实际中向量或者矩阵有两层方括号(即属于二维数组),下面给出列向量、行向量和矩阵的示例。
- 列向量
这里写图片描述

-行向量

这里写图片描述

-矩阵
这里写图片描述

综上可知,可以以方括号的形式判断数组是否能够代表一个向量或者矩阵,又或者通过转置看前后是否变化来判断。

(二)Python中向量的构建

在实际编程中,可以采用如下方式构建向量或者矩阵,即

(1)reshape()函数
通过reshape()函数可以依据数组创建指定维度的向量或者矩阵,比如可以针对秩为1的数组创建列向量或者行向量或者矩阵,即由一维数组转化成二维数组,如下所示
这里写图片描述
注:reshape()函数可以创建指定形状的新数组,但是不会改变原数组的形状,如
这里写图片描述

(2)直接在构建数组时,利用数组函数指定行列数
可以利用zeros(),ones(),randn()等函数构建指定形状的数组、向量、矩阵,例如
这里写图片描述

注:np.zeros(数值)构建的一维数组秩为1,不能代表向量,如
这里写图片描述

原创粉丝点击