numpy.dot

dot函数是如何对矩阵进行运算的??

numpy.dotabout = 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) 得到的结果是不一样的。

原文地址:https://www.cnblogs.com/BBS2013/p/12838582.html