對NumPy中dot 函式的理解

2022-08-16 18:00:16 字數 1000 閱讀 8392

今天學習到numpy基本的運算方法,遇到了乙個讓我比較難理解的問題。就是dot函式是如何對矩陣進行運算的。

一、dot()的使用

dot()返回的是兩個陣列的點積(dot product)

1.如果處理的是一維陣列,則得到的是兩陣列的內積(順便去補一下數學知識)

in : d = np.arange(0,9)

out: array([0, 1, 2, 3, 4, 5, 6, 7, 8])

in : e = d[::-1]

out: array([8, 7, 6, 5, 4, 3, 2, 1, 0])

in : np.dot(d,e)

out: 84

2.如果是二維陣列(矩陣)之間的運算,則得到的是矩陣積(mastrix product)。

in : a = np.arange(1,5).reshape(2,2)

out:

array([[1, 2],

[3, 4]])

in : b = np.arange(5,9).reshape(2,2)

out:

array([[5, 6],

[7, 8]])

in : np.dot(a,b)

out:

array([[19, 22],

[43, 50]])

所得到的陣列中的每個元素為,第乙個矩陣中與該元素行號相同的元素與第二個矩陣與該元素列號相同的元素,兩兩相乘後再求和。

這句話有點難理解,但是這句話裡面沒有哪個字是多餘的。結合下圖理解這句話。

3.dot()函式可以通過numpy庫呼叫,也可以由陣列例項物件進行呼叫。a.dot(b) 與 np.dot(a,b)效果相同。

矩陣積計算不遵循交換律,np.dot(a,b) 和 np.dot(b,a) 得到的結果是不一樣的。

Numpy中的dot運算

in import numpy as np a np.array 1 2,3 a out array 1 2,3 a為陣列。in b np.array 4 5,6 np.dot a,b out 32 結果為標量32 in m np.array 1,2,3 2,3,1 0,1,1 m out arra...

對numpy中shape的理解

from 環境 windows,python3.5 import numpy as np a np.array 2,3,33 a array 2 3 33 print a 2 3 33 a.shape 3,a.shape 0 3 a.shape 1 traceback most recent cal...

筆記 對numpy中shape的理解

環境 windows,python2.7 import numpy as np a np.array 2,3,33 a array 2 3 33 print a 2 3 33 a.shape 3,一維情況中array建立的可以看做list 或一維陣列 建立時用 和 都可以,多維也一樣,兩種方法建立後...