對NumPy中dot()函數(shù)的理解今天學(xué)習(xí)到numpy基本的運(yùn)算方法,遇到了一個讓我比較難理解的問題。就是dot函數(shù)是如何對矩陣進(jìn)行運(yùn)算的。 一、dot()的使用 參考文檔:https://docs./doc/numpy/reference/generated/numpy.dot.html dot()返回的是兩個數(shù)組的點(diǎn)積(dot product) 1.如果處理的是一維數(shù)組,則得到的是兩數(shù)組的內(nèi)積(順便去補(bǔ)一下數(shù)學(xué)知識) 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.如果是二維數(shù)組(矩陣)之間的運(yùn)算,則得到的是矩陣積(mastrix product)。 In : a = np.arange(1,5).reshape(2,2) In : b = np.arange(5,9).reshape(2,2) 所得到的數(shù)組中的每個元素為,第一個矩陣中與該元素行號相同的元素與第二個矩陣與該元素列號相同的元素,兩兩相乘后再求和。 這句話有點(diǎn)難理解,但是這句話里面沒有哪個字是多余的。結(jié)合下圖理解這句話。 3.dot()函數(shù)可以通過numpy庫調(diào)用,也可以由數(shù)組實(shí)例對象進(jìn)行調(diào)用。a.dot(b) 與 np.dot(a,b)效果相同。 矩陣積計(jì)算不遵循交換律,np.dot(a,b) 和 np.dot(b,a) 得到的結(jié)果是不一樣的。 |
|