【官网】https://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html
numpy.dot(a, b, out=None)
一、dot()的使用
dot()返回的是两个数组的点积(dot product)
1.如果处理的是一维数组,则得到的是两数组的內积
import numpy as np
a = np.arange(0,9) b = a[::-1] c = np.dot(a,b) print(a) print(b) print(c)
输出:
[0 1 2 3 4 5 6 7 8] [8 7 6 5 4 3 2 1 0] 84
注:0*8 + 1*7 + 2*6 + 3*5 + 4*4 + 5*3 + 6*2 + 7*1 +8*0 = 0 + 7 + 12 + 15 + 16 +15 + 12 + 7*1 +8*0 = 84
2.如果是二维数组(矩阵)之间的运算,则得到的是矩阵积(mastrix product)
import numpy as np a = np.arange(1,5).reshape(2,2) b = np.arange(5,9).reshape(2,2) c = np.dot(a,b) print("a:",a) print("b:",b) print("c:",c)
输出:
a: [[1 2] [3 4]] b: [[5 6] [7 8]] c: [[19 22] [43 50]]
注:
[[1, 2],
[3, 4]]
[[5, 6],
[7, 8]]
1*5 + 2*7 = 19 1*6 + 2*8 = 22 3*5 + 4*7 = 43 3*6 + 4*8 = 50
图解:
3.dot()函数可以通过numpy库调用,也可以由数组实例对象进行调用。a.dot(b) 与 np.dot(a,b)效果相同。
【注意】矩阵积计算不遵循交换律,np.dot(a,b) 和 np.dot(b,a) 得到的结果是不一样的。