python 矩陣乘法的幾種實(shí)現(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)對于兩個(gè)矩陣元素 a 和 b 維度不一的情況(array 和 matrix 對象都適用),則需將相應(yīng)的行和列進(jìn)行擴(kuò)充,需要擴(kuò)充的行或列的維度必須為 1。
對列擴(kuò)充則補(bǔ) 1, 對行擴(kuò)充則將第一行復(fù)制到每一行。比如,a:3 * 1, b: 1 * 2,則 a 擴(kuò)充為 3 * 2,b 擴(kuò)充為 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為標(biāo)量:則標(biāo)量直接相乘
2. *
(1)對于 matrix 對象,代表矩陣乘法(維度必須滿足相應(yīng)規(guī)則);
(2)對于array對象,則是每行對應(yīng)元素相乘。當(dāng) array 對象的 shape 不同時(shí)(matrix 對象不行) ,其規(guī)則和 np.multiply 一樣;
3. np.matmul
該函數(shù)對 array 和 matrix 對象的操作是不一樣的。
(1)對于 matrix 對象,對應(yīng)矩陣乘法,對象維度必須滿足矩陣乘法規(guī)則。
(2)對于 array 對象,對應(yīng)內(nèi)積,但對象維度必須相同,不支持維度擴(kuò)展。
(3)不支持標(biāo)量運(yùn)算。
在array 中,與 multiply 一樣,每行對應(yīng)元素相乘
4. np.dot
對于matrix 對象,對應(yīng)矩陣乘法。
對于兩個(gè) array 類型的元素:a,b,有如下可能:
(1)a 和 b 都是一維 array,那么 dot 就是它們的內(nèi)積(點(diǎn)乘);
(2)a 和 b 都是二維 array,那么 dot 就是它們的矩陣乘積(即按矩陣乘法規(guī)則來計(jì)算),也可以用 matmul 或 a @ b;
(3)如果a 和 b 都是標(biāo)量(scalar),那么 dot 就是兩個(gè)數(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 矩陣乘法的幾種實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)python 矩陣乘法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用Streamlit快速構(gòu)建一個(gè)數(shù)據(jù)應(yīng)用程序
Streamlit是一個(gè)開源的Python庫,它允許數(shù)據(jù)科學(xué)家和開發(fā)人員快速創(chuàng)建和分享數(shù)據(jù)應(yīng)用程序,而無需具備復(fù)雜的Web開發(fā)經(jīng)驗(yàn),本文將介紹Streamlit的基本用法,并通過一個(gè)實(shí)際案例展示如何快速構(gòu)建一個(gè)簡單的數(shù)據(jù)應(yīng)用程序,需要的朋友可以參考下2025-03-03
python3 實(shí)現(xiàn)一行輸入,空格隔開的示例
今天小編就為大家分享一篇python3 實(shí)現(xiàn)一行輸入,空格隔開的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
使用Python制作一個(gè)數(shù)據(jù)預(yù)處理小工具(多種操作一鍵完成)
這篇文章主要介紹了使用Python制作一個(gè)數(shù)據(jù)預(yù)處理小工具(多種操作一鍵完成),本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
利用Python實(shí)現(xiàn)Windows下的鼠標(biāo)鍵盤模擬的實(shí)例代碼
本篇文章主要介紹了利用Python實(shí)現(xiàn)Windows下的鼠標(biāo)鍵盤模擬的實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07
Python設(shè)計(jì)模式之橋接模式原理與用法實(shí)例分析
這篇文章主要介紹了Python設(shè)計(jì)模式之橋接模式原理與用法,結(jié)合具體實(shí)例形式分析了Python橋接模式的相關(guān)概念、原理、定義及使用方法,需要的朋友可以參考下2019-01-01
用Python的Django框架完成視頻處理任務(wù)的教程
這篇文章主要介紹了用Python的Django框架完成視頻處理任務(wù)的教程,包括用戶的視頻上傳和播放以及下載功能的實(shí)現(xiàn),需要的朋友可以參考下2015-04-04
python新手經(jīng)常遇到的17個(gè)錯(cuò)誤分析
這篇文章主要介紹了python新手經(jīng)常遇到的17個(gè)錯(cuò)誤分析,需要的朋友可以參考下2014-07-07

