python 矩陣乘法的幾種實現(xiàn)方法
1. np.multiply
對 array 和 matrix 對象的操作相同
(1) a 和 b 維度相同
都是每行對應(yīng)元素相乘(即對應(yīng)內(nèi)積的第一步,不求和)
>>> a = np.array([[1,2],[1,2]])
>>> a*a
>>> array([[1, 4],
[1, 4]])
(2)對于兩個矩陣元素 a 和 b 維度不一的情況(array 和 matrix 對象都適用),則需將相應(yīng)的行和列進行擴充,需要擴充的行或列的維度必須為 1。
對列擴充則補 1, 對行擴充則將第一行復制到每一行。比如,a:3 * 1, b: 1 * 2,則 a 擴充為 3 * 2,b 擴充為 3 * 2。
如下所示:
>>> a = np.array([[1],[1],[1]])
>>> b = np.array([1,2])
>>> np.multiply(a, b)
>>> array([[1, 2],
[1, 2],
[1, 2]])
(3)a 和 b為標量:則標量直接相乘
2. *
(1)對于 matrix 對象,代表矩陣乘法(維度必須滿足相應(yīng)規(guī)則);
(2)對于array對象,則是每行對應(yīng)元素相乘。當 array 對象的 shape 不同時(matrix 對象不行) ,其規(guī)則和 np.multiply 一樣;
3. np.matmul
該函數(shù)對 array 和 matrix 對象的操作是不一樣的。
(1)對于 matrix 對象,對應(yīng)矩陣乘法,對象維度必須滿足矩陣乘法規(guī)則。
(2)對于 array 對象,對應(yīng)內(nèi)積,但對象維度必須相同,不支持維度擴展。
(3)不支持標量運算。
在array 中,與 multiply 一樣,每行對應(yīng)元素相乘
4. np.dot
對于matrix 對象,對應(yīng)矩陣乘法。
對于兩個 array 類型的元素:a,b,有如下可能:
(1)a 和 b 都是一維 array,那么 dot 就是它們的內(nèi)積(點乘);
(2)a 和 b 都是二維 array,那么 dot 就是它們的矩陣乘積(即按矩陣乘法規(guī)則來計算),也可以用 matmul 或 a @ b;
(3)如果a 和 b 都是標量(scalar),那么 dot 就是兩個數(shù)的乘積,也可以用 multiply 或 a * b;
(4)若 a:N * D,b:1 * D,那么 dot 為 a 的每一行和 b (只有一行)的 內(nèi)積;
>>>a = np.array([[1,2], [3, 4]]) >>>b = np.array([1, 2]) >>>np.dot(a, b) >>>array([ 5, 11])
到此這篇關(guān)于python 矩陣乘法的幾種實現(xiàn)方法的文章就介紹到這了,更多相關(guān)python 矩陣乘法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pytorch?tensor按廣播賦值scatter_函數(shù)的用法
這篇文章主要介紹了pytorch?tensor按廣播賦值scatter_函數(shù)的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
python加密解密庫cryptography使用openSSL生成的密匙加密解密
這篇文章主要介紹了python加密解密庫cryptography使用openSSL生成的密匙加密解密,需要的朋友可以參考下2020-02-02
在VSCode中配置Python開發(fā)環(huán)境的詳細教程
Visual Studio Code(簡稱VSCode)以其強大的功能和靈活的擴展性,成為了許多開發(fā)者的首選,本文將詳細介紹如何在VSCode中配置Python開發(fā)環(huán)境,需要的朋友可以參考下2025-04-04
Python?Web?App開發(fā)Dockerfiles編寫示例
這篇文章主要為大家介紹了Python?Web?App編寫Dockerfiles的示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
利用Python高效實現(xiàn)Word轉(zhuǎn)HTML的全流程方案
在日常工作中,我們可能會遇到將大量 Word 文檔(.docx)轉(zhuǎn)換為 HTML 文件的需求,比如為了將文檔內(nèi)容展示到網(wǎng)頁上,或者實現(xiàn)文檔在線閱讀功能,所以本文將給大家介紹如何利用Python高效實現(xiàn)Word轉(zhuǎn)HTML,需要的朋友可以參考下2025-11-11
Matplotlib可視化之添加讓統(tǒng)計圖變得簡單易懂的注釋
今天給大家?guī)淼奈恼率顷P(guān)于Python的,文章圍繞著Python Matplotlib可視化展開,文中非常詳細的介紹了如何給統(tǒng)計圖添加注釋,需要的朋友可以參考下2021-06-06
使用python socket分發(fā)大文件的實現(xiàn)方法
今天小編就為大家分享一篇使用python socket分發(fā)大文件的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07

