欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python3 numpy中數(shù)組相乘np.dot(a,b)運算的規(guī)則說明

 更新時間:2021年03月16日 10:15:41   作者:Moelimoe  
這篇文章主要介紹了python3 numpy中數(shù)組相乘np.dot(a,b)運算的規(guī)則說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

python np.dot(a,b)運算規(guī)則解析

首先我們知道dot運算時不滿足交換律的,np.dot(a, b)與np.dot(b, a)是不一樣的

另外np.dot(a,b)和a.dot(b)果是一樣的

1.numpy中數(shù)組相乘np.dot(a,b)運算條件:

對于兩數(shù)組a和b :

示例一:

a = np.array([[3], [3], [3]]) # (3,1)
b = np.array([2, 2, 1]) # (3,)
print(a, "\na的shape", a.shape)
print(b, "\nb的shape", b.shape)
c = b.dot(a)
print(c, "\nc的shape", c.shape)

輸出:

 [3]
 [3]] 
a的shape (3, 1)
[2 2 1] 
b的shape (3,)
[15] 
c的shape (1,)

示例二:

a = np.array([[2,2,2,1],[3,3,3,1],[4,4,4,4]]) # shape=(3,4)
b = np.array([[1,1,1],[2,2,2],[3,3,3],[4,4,4]]) # shape=(4,3)

可以直接看他們的shape:a的shape為(3, 4)設(shè)為(m, n);b的shape為(4, 3)設(shè)為(x, y)

對于上面兩個數(shù)組a,b:

np.dot(a,b)的運算條件為:n==x,如果a的shape變?yōu)?4, 3)則兩則無法dot

簡單來說規(guī)律就是:如果a.shape=(m,n),b.shape=(x,y)那么**np.dot(a,b)**的運算條件為:n=x (這一點用于在python理解和快速判斷數(shù)組的shape是否用對了)

實際上數(shù)組運算的規(guī)律將兩個數(shù)組畫出來,是這樣的:

2.np.dot(a,b)運算之后的結(jié)果解析

規(guī)律:dot之后會將兩組數(shù)組中相等的(符合dot條件的)維度消掉,得到剩下的維度組合成新的數(shù)組,如果剩下只有一個維度則為行(對應(yīng)一維),列是無

對于a.shape=(m,n),b.shape=(x,y):

dot之后n和x會消掉,結(jié)果shape變成(m,y)

如果n為1(或者空),shape變?yōu)椋▂,)

e.g1:

a = np.array([1,1,1]) # shape=(3,)
b = np.array([[3],[3],[3]]) # shape=(3,1)
print(np.dot(a,b))
print("dot之后的shape為:", np.dot(a,b).shape)

那么,3和3消掉,剩下只有一個數(shù)1,對應(yīng)1行沒有列==>(1,)

運算結(jié)果:

[9]
dot之后的shape為:(1,)

e.g2:

a.shape=(4,1) 
b.shape=(1,4)

那么( 1和1消掉,剩下(4,4) )

np.dot(a,b)的shape為(4,4)

補充:Python3中的列表、數(shù)組和矩陣及*、np.dot和np.multiply解析

今天用Python進行數(shù)據(jù)處理的時候,突然發(fā)現(xiàn)自己搞不清Python中的列表和數(shù)組有啥區(qū)別及其運算規(guī)則,總是得不到自己想要的結(jié)果。于是就開始在網(wǎng)上找相關(guān)資料,發(fā)現(xiàn)很多資料講的都十分片面,下面自己總結(jié)的各個資料,給大家進行詳細的解釋:

1.列表、數(shù)組和矩陣

列表是Python中最基本的數(shù)據(jù)結(jié)構(gòu),列表中可以存儲數(shù)字、字符串等,因此Python可以通過列表存儲數(shù)組;

數(shù)組是Python擴展庫Numpy中的一種數(shù)據(jù)結(jié)構(gòu)ndarray;

矩陣是同樣是Python擴展庫Numpy中的一種數(shù)據(jù)結(jié)構(gòu)mat;

那么既然存在列表,為什么我們不直接使用Python中的列表,而使用Numpy呢?原因顯然意見,Python中列表的存儲效率和輸入輸出性能遠不及Numpy中的數(shù)組和矩陣,但是由于列表中可以存儲任意元素,因此列表的通用性方面要比數(shù)組和矩陣強。總之列表與數(shù)組、矩陣各有各的優(yōu)勢,要視使用場合選擇合適的數(shù)據(jù)結(jié)構(gòu)。

同樣Numpy中的數(shù)組和矩陣也是有區(qū)別的:

Numpy中的矩陣必須是2維的,而Numpy中數(shù)組可以是多維的,因此矩陣是數(shù)組的一個特例,所以在Numpy中的矩陣繼承著數(shù)組的所有特性;

同時我們常常需要查看列表、數(shù)組和矩陣的屬性,如size、shape、len

其中l(wèi)en():返回對象的長度,可以作用于列表、數(shù)組和矩陣:len(list([1,2,3]))

size()和shape()是Numpy擴展庫中才用的函數(shù):

size():計算所有數(shù)據(jù)的個數(shù),同樣可以作用于列表、數(shù)組和矩陣:np.size(np.array([1,2,3]))

shape():得到數(shù)據(jù)每維的大小,同樣可以作用于列表、數(shù)組和矩陣:np.shape(np.array([1,2,3]))

不同于len,shape和size還可以作為數(shù)組和矩陣的屬性(列表不行),使用方法如下:a.shape、a.size

2.Python中的星號(*)、np.multiply()、np.dot()

1.星號(*):

對數(shù)組執(zhí)行對應(yīng)位置相乘;對矩陣執(zhí)行矩陣乘法運算

2.np.multiply()

不管對矩陣還是數(shù)組都是執(zhí)行對應(yīng)位置相乘

3.np.dot()

對秩為1的數(shù)組:對應(yīng)位置相乘并求和

對秩不為1的數(shù)組:矩陣乘法運算

對矩陣:矩陣乘法運算

上面是對列表、數(shù)組、矩陣以及Python中各種乘法的總結(jié),果然總結(jié)對自己理解問題有很大的幫助,現(xiàn)在自己自己很清楚它們的用法了,希望這篇博客也可以幫助大家~

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • python實現(xiàn)鍵盤控制鼠標移動

    python實現(xiàn)鍵盤控制鼠標移動

    這篇文章主要為大家詳細介紹了python實現(xiàn)鍵盤控制鼠標移動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • python判斷字符串或者集合是否為空的實例

    python判斷字符串或者集合是否為空的實例

    今天小編就為大家分享一篇python判斷字符串或者集合是否為空的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python random模塊的使用示例

    Python random模塊的使用示例

    這篇文章主要介紹了Python random模塊的使用示例,幫助大家更好的理解和使用python生成隨機數(shù),感興趣的朋友可以了解下
    2020-10-10
  • Python3 操作 MySQL 插入一條數(shù)據(jù)并返回主鍵 id的實例

    Python3 操作 MySQL 插入一條數(shù)據(jù)并返回主鍵 id的實例

    這篇文章主要介紹了Python3 操作 MySQL 插入一條數(shù)據(jù)并返回主鍵 id的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python實現(xiàn)復(fù)制整個目錄的方法

    python實現(xiàn)復(fù)制整個目錄的方法

    這篇文章主要介紹了python實現(xiàn)復(fù)制整個目錄的方法,涉及Python中shutil模塊的相關(guān)操作技巧,需要的朋友可以參考下
    2015-05-05
  • Python實現(xiàn)批量下載文件的示例代碼

    Python實現(xiàn)批量下載文件的示例代碼

    下載文件是我們在日常工作中常常要做的一件事情,當我們需要從互聯(lián)網(wǎng)上批量下載大量文件時,手動一個一個去下載顯然不夠高效,所以本文為大家介紹一下如何利用python批量下載文件吧
    2023-11-11
  • PyInstaller將Python腳本打包為.exe可執(zhí)行文件的步驟詳解

    PyInstaller將Python腳本打包為.exe可執(zhí)行文件的步驟詳解

    Python是一門強大而靈活的編程語言,為了方便共享和部署,我們可以將 Python 腳本打包為可執(zhí)行文件(.exe),這樣其他用戶就無需安裝 Python環(huán)境,直接運行可執(zhí)行文件即可,本文將介紹如何使用PyInstaller 工具實現(xiàn)這一目標,需要的朋友可以參考下
    2023-12-12
  • OpenCV學習記錄python實現(xiàn)連通域處理函數(shù)

    OpenCV學習記錄python實現(xiàn)連通域處理函數(shù)

    這篇文章主要為大家介紹了OpenCV學習記錄python實現(xiàn)連通域處理函數(shù)cv2.connectedComponentsWithStats()和cv2.connectedComponents()的使用示例詳解
    2022-06-06
  • Python編程中對super函數(shù)的正確理解和用法解析

    Python編程中對super函數(shù)的正確理解和用法解析

    可能有人會想到,Python中既然可以直接通過父類名調(diào)用父類方法為什么還會存在super函數(shù)?其實,很多人對Python中的super函數(shù)的認識存在誤區(qū),本文我們就帶來在Python編程中對super函數(shù)的正確理解和用法解析
    2016-07-07
  • 關(guān)于Pyinstaller閃退的補救措施

    關(guān)于Pyinstaller閃退的補救措施

    這篇文章主要介紹了關(guān)于Pyinstaller閃退的補救措施,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論