python中dot函數(shù)運算過程總結(jié)
本文結(jié)合其他博主的一些介紹總結(jié)了dot函數(shù)運算過程
基本簡介
dot函數(shù)為numpy庫下的一個函數(shù),主要用于矩陣的乘法運算,其中包括:向量內(nèi)積、多維矩陣乘法和矩陣與向量的乘法。
1. 向量內(nèi)積
向量其實是一維的矩陣,兩個向量進行內(nèi)積運算時,需要保證兩個向量包含的元素個數(shù)是相同的。
例1:
import numpy as np x = np.array([1, 2, 3, 4, 5, 6, 7]) y = np.array([2, 3, 4, 5, 6, 7, 8]) result = np.dot(x, y) print(result)
輸出結(jié)果:
168
計算過程就是將向量中對應(yīng)元素相乘,再相加所得。即普通的向量乘法運算。
2. 矩陣乘法運算
注意:
1.數(shù)組的運算是元素級的,數(shù)組相乘的結(jié)果是各對應(yīng)元素的積組成的數(shù)組,而對于矩陣而言,需要求的是點積
2.兩個矩陣(x, y)如果可以進行乘法運算,需要滿足以下條件:
x為 m×n 階矩陣,y為 n×p 階矩陣,
則相乘的結(jié)果 result 為 m×p 階矩陣。例子如下
例2:
import numpy as np x = np.array([[1, 2, 3], [3, 4, 4]]) y = np.array([[0, 1, 1, 1], [1, 2, 0, 1], [0, 0, 2, 1]]) result = np.dot(x, y) print(result) print("x階數(shù):" + str(x.shape)) print("y階數(shù):" + str(y.shape)) print("result階數(shù):" + str(result.shape))
結(jié)果為:
[[ 2 5 7 6]
[ 4 11 11 11]]
x階數(shù):(2, 3)
y階數(shù):(3, 4)
result階數(shù):(2, 4)
下面我們來分析一下一維數(shù)組到多維數(shù)組之間的運算過程
2.1如下單個數(shù)的dot函數(shù)運算所示:
np.dot(5,8)40
2.2如下一維數(shù)組的dot函數(shù)運算所示:
#如果arr1和arr2都是一維數(shù)組,那么它返回的就是向量的內(nèi)積
arr1=np.array([2,3]) arr2=np.array([4,5]) np.dot(arr1,arr2) #23
如圖所示:
2.3如下二維數(shù)組的dot函數(shù)運算所示:
#如果arr5 和arr6都是二維數(shù)組,那么它返回的是矩陣乘法
arr5=np.array([[2,3],[4,5]]) arr6=np.array([[6,7],[8,9]]) np.dot(arr5,arr6) """ array([36,4], ? ? ? ? ? [64,73]) """
運算過程如下所示:
2.4如下二維數(shù)組與三維數(shù)組的dot函數(shù)運算:
#arr7二維數(shù)組與arr8三維數(shù)組的dot函數(shù)矩陣運算
arr7=np.array([[2,3,4],[5,6,7]]) arr8=np.array([[0,1,2],[3,4,5],[6,7,8]]) np.dot(arr7,arr8) """ array([33,42,51],[60,78,96]) """
2.5如下多維數(shù)組的dot函數(shù)運算所示:
#多維數(shù)組的dot函數(shù)矩陣運算 arr12=np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]]) arr13=np.array([[0,1,2],[3,4,5],[6,7,8]]) np.dot(arr12,arr13) """ array([15,18,21], ????????[42,54,66], ????????[69,90,111], ????????[96,126,156]) """
注意:
dot()函數(shù)可以通過NumPy庫調(diào)用,也可以由數(shù)組實例對象進行調(diào)用。例如:a.dot(b) 與 np.dot(a,b)效果相同。但矩陣積計算不遵循交換律,np.dot(a,b) 和 np.dot(b,a) 得到的結(jié)果是不一樣的。
總結(jié)
到此這篇關(guān)于python中dot函數(shù)運算的文章就介紹到這了,更多相關(guān)python dot函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python調(diào)用adb命令實現(xiàn)對多臺設(shè)備同時進行reboot的方法
今天小編就為大家分享一篇Python調(diào)用adb命令實現(xiàn)對多臺設(shè)備同時進行reboot的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10python基于OpenCV模板匹配識別圖片中的數(shù)字
這篇文章主要介紹了python基于OpenCV模板匹配識別圖片中的數(shù)字,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下2021-03-03