關於python中的矩陣乘法(array和mat類型)


一、關於python中的矩陣乘法,我們一般有兩種數據格式可以實現:np.array()類型和np.mat()類型;

對於這兩種數據類型均有三種操作方式:

(1)乘號 *

(2)np.dot()

(3)np.multiply()

而這三種操作方式在操作這兩種數據格式時又有點區別,下面一一列出來:

import numpy as np 

#np.array() type
#1. np.dot()
a = np.array([[1 , 2] , [3 , 4]] , dtype = np.float)
b = np.array([[1 , 2] , [3 , 4]] , dtype = np.float)
c = np.dot(a , b)
print(c)
#output:[[  7.  10.],[ 15.  22.]]

#2. *
d = a * b
print(d)
#output:[[  1.   4.],[  9.  16.]]

#3. np.multiply()
e = np.multiply(a , b)
print(e)
#output:[[  1.   4.],[  9.  16.]]

#np.mat() type
#4. *
A = np.mat([[1 , 2] , [3 , 4]] , dtype = np.float)
B = np.mat([[1 , 2] , [3 , 4]] , dtype = np.float)
C = A * B
print(C)
#output:[[  7.  10.],[ 15.  22.]]

#5. np.dot()
D = np.dot(A , B)
print(D)
#output:[[  7.  10.],[ 15.  22.]]

#6. np.multiply()
E = np.multiply(A , B)
print(E)
#output:[[  1.   4.],[  9.  16.]]

# np.mat() * np.array()
F = A * a;
print(F)
#output:[[  7.  10.],[ 15.  22.]]

 

由上面的代碼可以總結如下:

(1)np.dot()對於這兩種數據格式均為矩陣乘法;

(2)np.multiply()對於這兩種數據格式均為按元素相乘;

(3)符號“*”對於array類型是矩陣乘法,對於mat類型是按元素類型相乘,而當一個array類型乘上一個mat類型時,則為矩陣乘法;

二、pytorch中的乘法:

(1)矩陣相乘:torch.mm();

(2)對應元素點乘:torch.mul();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM