首先创建如下的数组和矩阵,其中a,b为数组,A,B为矩阵
import numpy as np a = np.arange(1,5).reshape(2,2) type(a) Out[3]: numpy.ndarray b = np.arange(0,4).reshape(2,2) type(b) Out[5]: numpy.ndarray A = np.mat(a) type(A) Out[7]: numpy.matrix B = np.mat(b) type(B) Out[9]: numpy.matrix
下面列出数组和矩阵使用multiply()和dot以及*计算的结果,计算场景有点多,这里先给出multiply()、dot以及*之间的区别:
1 * 运算符:当参与计算的类型都为数组时,计算方式为:对应位置相乘,当其中一个类型为矩阵时,则采用矩阵乘法。
2 dot运算符:无论参与计算的是数组还是矩阵,计算方式都为:矩阵乘法,
3 multiply()运算符:无论参与计算的是数组还是矩阵,计算方式都为:对应位置相乘。
数组*数组
a Out[11]: array([[1, 2], [3, 4]]) b Out[12]: array([[0, 1], [2, 3]]) a * b Out[13]: array([[ 0, 2], [ 6, 12]])
矩阵*矩阵
A Out[14]: matrix([[1, 2], [3, 4]]) B Out[15]: matrix([[0, 1], [2, 3]]) A*B Out[16]: matrix([[ 4, 7], [ 8, 15]])
数组dot数组
a Out[18]: array([[1, 2], [3, 4]]) b Out[19]: array([[0, 1], [2, 3]]) a.dot(b) Out[20]: array([[ 4, 7], [ 8, 15]])
矩阵dot矩阵
A Out[14]: matrix([[1, 2], [3, 4]]) B Out[15]: matrix([[0, 1], [2, 3]]) Out[21]: matrix([[ 4, 7], [ 8, 15]])
数组multiply数组
a Out[22]: array([[1, 2], [3, 4]]) b Out[23]: array([[0, 1], [2, 3]]) np.multiply(a,b) Out[24]: array([[ 0, 2], [ 6, 12]])
矩阵multiply矩阵
A Out[25]: matrix([[1, 2], [3, 4]]) B Out[26]: matrix([[0, 1], [2, 3]]) np.multiply(A,B) Out[27]: matrix([[ 0, 2], [ 6, 12]])
数组*矩阵
a Out[29]: array([[1, 2], [3, 4]]) B Out[30]: matrix([[0, 1], [2, 3]]) a * B Out[31]: matrix([[ 4, 7], [ 8, 15]])
矩阵*数组
a Out[29]: array([[1, 2], [3, 4]]) B Out[30]: matrix([[0, 1], [2, 3]]) a * B Out[31]: matrix([[ 4, 7], [ 8, 15]])
数组dot矩阵
a Out[35]: array([[1, 2], [3, 4]]) B Out[36]: matrix([[0, 1], [2, 3]]) a.dot(B) Out[37]: matrix([[ 4, 7], [ 8, 15]])
矩阵dot数组
A Out[38]: matrix([[1, 2], [3, 4]]) b Out[39]: array([[0, 1], [2, 3]]) A.dot(b) Out[40]: matrix([[ 4, 7], [ 8, 15]])
数组multiply矩阵
a Out[41]: array([[1, 2], [3, 4]]) B Out[42]: matrix([[0, 1], [2, 3]]) np.multiply(a,B) Out[43]: matrix([[ 0, 2], [ 6, 12]])
矩阵multiply数组
A Out[44]: matrix([[1, 2], [3, 4]]) b Out[45]: array([[0, 1], [2, 3]]) np.multiply(A,b) Out[46]: matrix([[ 0, 2], [ 6, 12]])
总结:
1 * 运算符:当参与计算的类型都为数组时,计算方式为:对应位置相乘,当其中一个类型为矩阵时,则采用矩阵乘法。
2 dot运算符:无论参与计算的是数组还是矩阵,计算方式都为:矩阵乘法,
3 multiply()运算符:无论参与计算的是数组还是矩阵,计算方式都为:对应位置相乘。
数组使用*运算符时,其计算方式为对应的位置相乘,当想使用数组进行矩阵乘法时,可以使用dot实现,而矩阵使用*运算符时,其计算方式矩阵相乘,当想使用矩阵进行对应位置相乘时,可以使用multiply实现。可见 dot运算符负责数组/矩阵的矩阵乘法,multiply负责矩阵/数组的对应位置相乘。
到此这篇关于python multiply()与dot使用示例讲解的文章就介绍到这了,更多相关python multiply()与dot内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!