dot函数是如何对矩阵进行运算的??
numpy.
dot
(a,b,out = None )
1.如果处理的是一维数组,则得到的是两数组的內积
In : d = np.arange(0,9) Out: array([0, 1, 2, 3, 4, 5, 6, 7, 8]) In : e = d[::-1] %[::-1]:翻转的意思:https://blog.csdn.net/hjxu2016/article/details/79728340 Out: array([8, 7, 6, 5, 4, 3, 2, 1, 0]) In : np.dot(d,e) Out: 84
python关于list[::-1]翻转的一些用法
a = [1,3,4,2,'a','d']print a[::-1]
可以得到['d', 'a', 2, 4, 3, 1]; a[::-1],就是将a翻转过来的意思,从最后一个到第一个开始
a = [1,3,4,2,'a','d']
print a[3::-1]
可以得到[2, 4, 3, 1]; a[3::-1]就是从第三个数字往前排序
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]])
a = [[1, 0], [0, 1]] b = [[4, 1], [2, 2]] np.dot(a, b) array([[4, 1], [2, 2]])
3.dot()函数可以通过numpy库调用,也可以由数组实例对象进行调用。a.dot(b) 与 np.dot(a,b)效果相同。
矩阵积计算不遵循交换律,np.dot(a,b) 和 np.dot(b,a) 得到的结果是不一样的。