1. 程式人生 > >numpy使用之numpy.dot

numpy使用之numpy.dot

numpy.dot

原型: numpy.dot(a, b, out=None) 兩個numpy陣列的點乘 (1). 如果兩個引數a,ba,b都是11維的,該運算向量內積(沒有複數共軛時) np.dot([1,2],[1,2]) 5 (2). 如果兩個引數a,ba,b都是22維的,該運算做矩陣乘法,但是使用matmul或者[email protected]更好 np.dot([[1,2],[3,4]],[[1,0],[0,1]])

array([[1, 2],
       [3, 4]])

(3). 如果引數aa或者bb00維(標量)的,該運算與multiply,但是使用np.multiply(a, b)

或者a*b更好 np.dot([[1,2],[3,4]],1)

array([[1, 2],
       [3, 4]])

(4). 如果aaNN維的,bb11維(標量)的,它做的是aa在最後一根軸方向上與bb做點積(相乘求和)。

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). 如果aaNN維的,bbM(M>=2)M(M>=2)維的,它做的是aa在最後一根軸方向上與b

b在倒數第二根軸上做點積(相乘求和)。 dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])