Python中的数学运算
生活随笔
收集整理的這篇文章主要介紹了
Python中的数学运算
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、加減乘除運算
Broadcasting普適性判斷:
首先將兩個shape靠右對齊,
對于長度為1的維度,默認(rèn)這個數(shù)據(jù)普遍適合于當(dāng)前維度的其他位置;
對于不存在的維度,則在增加新維度后默認(rèn)當(dāng)前數(shù)據(jù)也是普適于新維度的,從而可以擴(kuò)展為更多維度數(shù)、任意長度的張量形狀。
若對齊之后shape對應(yīng)維度的值都大于1且不相等,則不滿足。例如:
二、矩陣相乘運算
np.dot(a,b)
①如果a、b均是1維數(shù)組,則為向量內(nèi)積
②如果a、b均是2維數(shù)組,則均為矩陣乘法
③如果a或b是標(biāo)量,則與上述運算符*相同
④如果a是N(>=2)維數(shù)組,b是1維數(shù)組,進(jìn)行運算時,會首先將后面一項進(jìn)行自動轉(zhuǎn)置操作并將1維數(shù)組自動轉(zhuǎn)換為矩陣,之后再進(jìn)行矩陣乘法運算,最后結(jié)果還原成N階向量
注意不滿足交換律,np.dot(a,b)和np.dot(b,a)結(jié)果都是N階向量,但向量元素值不一樣
注意,在numpy中,若b.shape:(3,1)則代表b是一維矩陣,與向量不同,若此時a@b則屬于第二類,是矩陣乘法,結(jié)果為(N,1)的矩陣
⑤如果a是N(N>2)維數(shù)組,b是M(M>=2)維數(shù)組,則采用批量方式,選擇a和b的最后兩個維度進(jìn)行矩陣相乘,前面所有的維度都視作Batch維度。
根據(jù)矩陣相乘的定義,𝑨和𝑩能夠矩陣相乘的條件是:
a的倒數(shù)第一個維度長度(列)和b的倒數(shù)第二個維度長度(行)必須相等
示例:
PS:建議不要將運算和點乘、叉乘的名稱對應(yīng)起來,向量的點乘、叉乘和矩陣的點乘、叉乘不一樣,很繞。。。
參考
[1]np.dot()函數(shù)的用法詳解
[2]向量和矩陣的點乘和叉乘
[3]Python 矩陣與矩陣以及矩陣與向量的乘法
[4]Tensorflow深度學(xué)習(xí)
總結(jié)
以上是生活随笔為你收集整理的Python中的数学运算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Multimodal Discrimin
- 下一篇: Python BeautifulSoup