Numpy 矩阵乘法

Numpy 矩阵乘法,很多数据分析工具中,*在用于两个矩阵之间的运算时称为矩阵乘法,Numpy使用dot()函数表示这类乘法,注意,它并非元素级乘法。

极客教程NumPy 线性代数有提到dot()函数的使用,矩阵乘法运用比较广泛,本章再详细说明下。

算术运算

数组的第一类运算是使用算术运算符进行的运算,最简单的方式就是数组加上或乘以一个标量。这种运算符称为元素级,它们只用于位置相同的元素之间,所得到的运算结果组成一个新的数组。运算结果在新数组中的位置和操作数组位置相同。

Numpy 矩阵乘法

import numpy as np
a = np.arange(4)
b = np.arange(4,8)
print(a)
print(b)
print(a+b)
print(a*b)

输出结果如下:
Numpy 矩阵乘法

对于多维数组,这些运算依旧是元素级的

import numpy as np

A = np.arange(0,9).reshape(3,3)
B = np.ones((3,3))
print(A)
print('------------')
print(B)
print('------------')
print(A * B)

输出结果如下:
Numpy 矩阵乘法

矩阵乘法

Numpy使用dot()函数实现矩阵乘法,如下所示:

import numpy as np

A = np.arange(0,9).reshape(3,3)
B = np.ones((3,3))
print(A)
print('------------')
print(B)
print('------------')
print(np.dot(A, B))

输出结果如下:
Numpy 矩阵乘法

所得到的数组中每个元素为,第一个矩阵中与该元素行号相同的元素与第二个矩阵中与该元素列号相同的元素,两两相乘后再求和,如下图所示:
Numpy 矩阵乘法

矩阵相乘的另外一种写法是把dot()函数当作其中一个矩阵对象的方法,如下所示:

import numpy as np

A = np.arange(0,9).reshape(3,3)
B = np.ones((3,3))
print(A.dot(B))

输出结果如下:
Numpy 矩阵乘法

矩阵计算不遵循交换律,这里补充一下,运算对象的顺序很重要。A*B不等于B*A,如下所示:

import numpy as np

A = np.arange(0,9).reshape(3,3)
B = np.ones((3,3))
print(B.dot(A))

输出结果:
Numpy 矩阵乘法

更多矩阵操作,请参考:
极客教程Numpy 数组操作
极客教程NumPy 统计函数
极客教程NumPy 线性代数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程