您的位置:首页 > 编程语言 > Python开发

numpy中矩阵相乘的用法:dot函数和乘号*

2017-11-24 19:53 1871 查看

numpy.dot(a,b) 的用法

首先搞清楚:numpy中向量与矩阵之间的区别。函数array()构造的是向量,shape为(n,),向量没有行向量或列向量的说法。例如

a = np.array([1,2]) #a.shape为(2,),与[[1,2]]是不同的。

如果使用reshape函数,可以向量转换为包含一行或一列的矩阵。二者的区别可以通过打印shape看出来,参加下面代码中的例子。

如果两个参数都是“矩阵”,和线性代数中的矩阵相乘规则相同,这里不讨论。参数为多维张量(维数大于2)的情形这里也不作讨论。

参见:示例代码下载和更详尽的描述

numpy 中乘号*的使用

通常不能使用乘号*对两个矩阵作乘法,应该使用dot函数。

两个“同型矩阵”:乘号*运算将对应元素相乘,返回一个同型矩阵。

两个长度相同的“向量”:乘号*运算将对应元素相乘,返回一个同样长度的向量。

一个“向量”,一个“矩阵”:此时,“向量”的长度必须等于“矩阵”列数,乘号*运算将“向量”的每个元素和“矩阵”的对应列相乘后,返回一个和输入矩阵同型的矩阵。“向量”左乘和右乘的结果一样。

参见:示例代码下载和更详尽的描述
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  numpy python dot 向量 矩阵