CS231n学习笔记:numpy中向量的计算

numpy中向量的计算

基本语法和函数不再赘述。numpy中比较一个比较常见的问题是向量广播问题。numpy中将向量通通表示并且记录成行向量的形式。包括对一个多维矩阵进行切割操作,得到的只有一行或者一列的形式也会转换为自动转换为行向量。推荐不要随便将行向量reshape为列向量保存,因为向量通常既做行向量运算又做列向量运算,来回转换的话会很麻烦。在计算的时候临时reshape更不容易出错。向量在计算中主要包括两方面:
1.向量与向量的计算
2.向量与矩阵的计算

1.向量与向量的计算

对于向量计算,即使将向量转置它仍然是一个行向量,除非特别定义一个N维度的列向量(.reshape(N,1)),否则对于向量的加法不会出现广播的情况,向量的乘法dot会将一个行向量转为一个列向量之后再计算,*会将各对应元素直接相乘

2.向量与矩阵的计算

对于一个矩阵和向量进行运算,默认向量为行向量,只能在列上进行广播。向量和矩阵计算的一种方法是使用repeat函数将向量复制,再使用reshape转化成一个矩阵,这样没有使用广播的方式,优点是直观明了。另外这种写法也可以防止有时候写错了代码,出现某种错误的广播计算的情况。另一种方法是使用广播原理,需要在列上进行广播则可以直接计算,需要在行方向上进行广播可以使用reshape之后再进行计算。两种方法本质上都是将向量复制叠加成为了矩阵参与运算。

猜你喜欢

转载自blog.csdn.net/qq_39805337/article/details/81285453