numpy使用之numpy.dot
阿新 • • 發佈:2018-12-15
numpy.dot
原型: numpy.dot(a, b, out=None)
兩個numpy陣列的點乘
(1). 如果兩個引數都是維的,該運算向量內積(沒有複數共軛時)
np.dot([1,2],[1,2])
5
(2). 如果兩個引數都是維的,該運算做矩陣乘法,但是使用matmul
或者[email protected]
更好
np.dot([[1,2],[3,4]],[[1,0],[0,1]])
array([[1, 2],
[3, 4]])
(3). 如果引數或者是維(標量)的,該運算與multiply
,但是使用np.multiply(a, b)
a*b
更好
np.dot([[1,2],[3,4]],1)
array([[1, 2],
[3, 4]])
(4). 如果是維的,是維(標量)的,它做的是在最後一根軸方向上與做點積(相乘求和)。
a = np.arange(3*2).reshape((3,2))
print(a)
print(np.dot(a, [1,1]))
[[0 1]
[2 3]
[4 5]]
[1 5 9]
(5). 如果是維的,是維的,它做的是在最後一根軸方向上與在倒數第二根軸上做點積(相乘求和)。
dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])