python中的“*”,“np.dot()” 和 “@” 的区别

前言

经常会用到python来进行矩阵的运算,发现几种跟矩阵相关的乘法运算:“*”,“np.dot()” 和 “@”

现总结一下,并配合代码查看各自计算结果。

矩阵A,B的定义

用numpy的np.array()定义矩阵A,B,如下:

import numpy as np
A = np.array([ [1, 2, 3],
               [4, 5, 6] ])

B = np.array([ [6, 5],
               [4, 3],
               [2, 1] ])

A.T*B:

“*”运算是将两个向量中每个元素进行相乘,是数乘运算,需要两个矩阵维度相同,所以需要A的转置与B做“*”运算:

print(A.T*B)

'''
[[ 6 20]
 [ 8 15]
 [ 6  6]]

'''

np.dot(A, B):

print(np.dot(A, B))
'''
[[20 14]
 [56 41]]
'''

A@B:

print(A @ B)
'''
[[20 14]
 [56 41]]
'''

 总结:

对于用np.array()多维数组定义的矩阵,“*”运算是单纯做对应位置元素的数乘,“np.dot()”和“@”运算都可以起到矩阵乘法的作用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值