python中dot函數(shù)運(yùn)算過程總結(jié)
本文結(jié)合其他博主的一些介紹總結(jié)了dot函數(shù)運(yùn)算過程
基本簡(jiǎn)介
dot函數(shù)為numpy庫下的一個(gè)函數(shù),主要用于矩陣的乘法運(yùn)算,其中包括:向量?jī)?nèi)積、多維矩陣乘法和矩陣與向量的乘法。
1. 向量?jī)?nèi)積
向量其實(shí)是一維的矩陣,兩個(gè)向量進(jìn)行內(nèi)積運(yùn)算時(shí),需要保證兩個(gè)向量包含的元素個(gè)數(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
計(jì)算過程就是將向量中對(duì)應(yīng)元素相乘,再相加所得。即普通的向量乘法運(yùn)算。
2. 矩陣乘法運(yùn)算
注意:
1.數(shù)組的運(yùn)算是元素級(jí)的,數(shù)組相乘的結(jié)果是各對(duì)應(yīng)元素的積組成的數(shù)組,而對(duì)于矩陣而言,需要求的是點(diǎn)積
2.兩個(gè)矩陣(x, y)如果可以進(jìn)行乘法運(yùn)算,需要滿足以下條件:
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ù)組之間的運(yùn)算過程
2.1如下單個(gè)數(shù)的dot函數(shù)運(yùn)算所示:
np.dot(5,8)40
2.2如下一維數(shù)組的dot函數(shù)運(yùn)算所示:
#如果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ù)運(yùn)算所示:
#如果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]) """
運(yùn)算過程如下所示:
2.4如下二維數(shù)組與三維數(shù)組的dot函數(shù)運(yùn)算:
#arr7二維數(shù)組與arr8三維數(shù)組的dot函數(shù)矩陣運(yùn)算
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ù)運(yùn)算所示:
#多維數(shù)組的dot函數(shù)矩陣運(yùn)算 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ù)組實(shí)例對(duì)象進(jìn)行調(diào)用。例如:a.dot(b) 與 np.dot(a,b)效果相同。但矩陣積計(jì)算不遵循交換律,np.dot(a,b) 和 np.dot(b,a) 得到的結(jié)果是不一樣的。
總結(jié)
到此這篇關(guān)于python中dot函數(shù)運(yùn)算的文章就介紹到這了,更多相關(guān)python dot函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python調(diào)用adb命令實(shí)現(xiàn)對(duì)多臺(tái)設(shè)備同時(shí)進(jìn)行reboot的方法
今天小編就為大家分享一篇Python調(diào)用adb命令實(shí)現(xiàn)對(duì)多臺(tái)設(shè)備同時(shí)進(jìn)行reboot的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10Python演化計(jì)算基準(zhǔn)函數(shù)詳解
這篇文章主要介紹了Python演化計(jì)算基準(zhǔn)函數(shù),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧,希望能夠給你帶來幫助2021-10-10python基于OpenCV模板匹配識(shí)別圖片中的數(shù)字
這篇文章主要介紹了python基于OpenCV模板匹配識(shí)別圖片中的數(shù)字,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03python常用的時(shí)間模塊之datetime模塊示例詳解
這篇文章主要介紹了python常用的時(shí)間模塊之datetime模塊,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05