Python的向量和矩陣乘法意義大全包括dot和*的區別(2020)
Python的向量和矩陣乘法意義大全
最近在用python練習演算法,牽涉到一些數學公式,但對python各個相乘符號的意義不是很瞭解,索性就都實現了一遍,羅列在下面啦,也可以自己複製過去一個一個驗證啦?
#python 矩陣和向量相乘的意義
#Author:sw
#Time:2020/10/10
import numpy as np
#向量與向量相乘
a = np.array([1,2]) #為行向量(1,2) shapes(2,)
b = np.array([1,2,3])#為行向量(1,2,3) shapes(3,)
#print(a*b) #會報錯
#print(a.dot(b))#顯然也會報錯
c = np.array([1,1,2])#為行向量(1,1,2) shapes(3,)
# print(b*c) #答案為[1,2,6] 為對應位置的數相乘(*)
# print(c*b) #答案為[1,2,6] 為對應位置的數相乘(*)
# print(b.dot(c))#答案為9,執行的是矩陣乘法,自動轉置了
# print(c.dot(b))#答案為9,執行的是矩陣乘法,自動轉置了
# print(c.T.dot(b))#答案為9,執行的是矩陣乘法,自己轉置也行
# print(b.T.dot(c))#答案為9,執行的是矩陣乘法,自己轉置也行
#向量和矩陣相乘
d=np.array([[2,1,3],[1,1,1],[1,1,1]]) #為矩陣[[2 1 3]
# [1 1 1]
# [1 1 1]]
# print(a*d)#顯然報錯,維數不符合矩陣乘法的規則
# print(b*d) #答案為[[2 2 9]
# [1 2 3]
# [1 2 3]]
#很容易看出來這是矩陣每一行對應位置的數和行向量對應位置的數相乘(*)了
#print(d*b)#交換順序答案不變
#print(b.T*d)#答案與上面相同,說明矩陣和向量相乘(*)一定是對應位置,無論是行向量還是列向量
#print(d*b.T)#答案與上面相同,說明矩陣和向量相乘(*)一定是對應位置,無論向量在前還是在後
# print(d.dot(a))#顯然報錯,維數不符合矩陣乘法的規則
# print(b.dot(d))#答案為[7 6 8],7=1*2+2*1+3*1;6=1*1+2*1+3*1,8=3*1+2*1+3*1
#答案的第一列的數字由行向量b乘以矩陣第一列按矩陣乘法得到,第二列和第三列一樣的方法得到
# print(d.dot(b))#答案為[13 6 6],每一行的數字由矩陣對應行乘以向量對應位置得到,例如13=2*1+1*2+3*3
#可以想象為矩陣乘以了一個列向量
#矩陣與矩陣相乘
e=np.array([[1,1,1],[1,2,1],[3,1,1]]) #為矩陣[[1 1 1]
# [1 1 1]
# [3 1 1]]
# print(d*e) #答案為[[2 1 3]
# [1 2 1]
# [3 1 1]]
#可以看到為對應位置數乘
# print(e*d) #答案與上面相同
# print(e.dot(d)) #答案為 [[ 4 3 5]
# [ 5 4 6]
# [ 8 5 11]]
# 和我們熟悉的矩陣乘法規則同
# print(d.dot(e)) #答案為 [[12 7 6]
# [ 5 4 3]
# [ 5 4 3]]
# 和我們熟悉的矩陣乘法規則同,第一個矩陣的行和第二個矩陣的列相乘
相關文章
- CUDA版本稀疏矩陣向量乘矩陣
- OpenMP 版本稀疏矩陣向量乘矩陣
- 矩陣的特徵值和特徵向量矩陣特徵
- 向量和矩陣的座標變換7矩陣
- spark向量、矩陣型別Spark矩陣型別
- 奇異矩陣與非奇異矩陣的定義與區別矩陣
- MATLAB(6)矩陣和向量運算Matlab矩陣
- 向量和矩陣求導公式總結矩陣求導公式
- 三維旋轉矩陣 左乘和右乘分析矩陣
- Eigen教程(3)之矩陣和向量的運算矩陣
- 三維空間變換中旋轉矩陣左乘與右乘的區別矩陣
- [Python]-機器學習Python入門《Python機器學習手冊》-01-向量、矩陣和陣列Python機器學習矩陣陣列
- Python Numpy的陣列array和矩陣matrixPython陣列矩陣
- 機器學習中的矩陣向量求導(五) 矩陣對矩陣的求導機器學習矩陣求導
- 矩陣連乘矩陣
- 向量和矩陣的座標變換(下標記法)7矩陣
- 機器學習中的矩陣向量求導(四) 矩陣向量求導鏈式法則機器學習矩陣求導
- CUDA 版本矩陣乘矩陣
- Python陣列和列表的區別?Python學習教程Python陣列
- numpy中dot與*的區別
- Unity向量的演算法:叉乘和叉乘的實戰用法Unity演算法
- golang切片和陣列的區別Golang陣列
- javascript陣列和物件的區別JavaScript陣列物件
- 矩陣和陣列矩陣陣列
- 矩陣的最短距離和矩陣
- 矩陣連乘問題矩陣
- hdu 1757 矩陣連乘矩陣
- 基向量 變換矩陣矩陣
- 卷積運算元的矩陣向量乘積表示&一維離散降質模型卷積矩陣模型
- 伴隨矩陣和逆矩陣的關係證明矩陣
- 矩陣指數的定義矩陣
- Python 中 is 和 == 的區別Python
- Python中is和==的區別Python
- 陣列和連結串列的區別陣列
- 第四章:多維陣列和矩陣 ------------- 4.8 子矩陣的最大累加和陣列矩陣
- 2.12 求下列矩陣的特徵值和特徵向量的數值解和符號解 (-1 1 0 -4 3 0 1 0 2)的3*3矩陣矩陣特徵符號
- Unity開發中常用的基礎3D數學(向量,點乘,叉乘,矩陣,四元數,尤拉角)Unity3D點乘矩陣
- 【矩陣求導】關於點乘 (哈達瑪積)的矩陣求導矩陣求導點乘