NumPy矩阵基本运算
1975字,阅读需时7分钟

矩阵运算是机器学习经常用到的运算,NumPy可以很容易完成矩阵的各类运算。矩阵在NumPy中用二维数组表示,第一维数组称为行,第二维数组称为列,假设第一维数组有m个元素,第二维数组有n个元素,则该二维数组也称为m行n列矩阵,简称m X n矩阵。

矩阵基本运算有矩阵加法、矩阵减法、矩阵转置、矩阵相乘、求解线性方程等运算。

(1)矩阵加法运算

矩阵加法是指两个矩阵相加,相加的两个矩阵行列数要相等,相加后的矩阵行列数不变,其内的各元素为其对应元素相加后的值。

下面的代码定义了A和B两个矩阵,并计算A+B,输出的矩阵为A和B矩阵的和。

>>> import numpy as np
>>> A = np.array([[3,2,0],[6,1,5]])
>>> B = np.array([[9,6,1],[0,8,1]])
>>> A+B
array([[12,  8,  1],
       [ 6,  9,  6]])
>>>

(2)矩阵减法运算

矩阵减法是指两个矩阵相减,相减的两个矩阵行列数要相等,相减后的矩阵行列数不变,其内的各元素为其对应元素相减后的值。

下面的代码定义了A和B两个矩阵,并计算A-B,输出的矩阵为A和B矩阵的差。

>>> import numpy as np
>>> A = np.array([[3,2,0],[6,1,5]])
>>> B = np.array([[9,6,1],[0,8,1]])
>>> A-B
array([[-6, -4, -1],
       [ 6, -7,  4]])
>>>

(3)矩阵转置运算

矩阵转置是把m行n列的矩阵按序进行行列互换得到n X m的矩阵。下面的代码定义了2行3列的A矩阵,对A矩阵进行转置元素得到3行2列的B矩阵。

>>> import numpy as np
>>> A= np.array([[1,2,3],[4,5,6]])
>>> A
array([[1, 2, 3],
       [4, 5, 6]])
>>> B = A.T
>>> B
array([[1, 4],
       [2, 5],
       [3, 6]])
>>>

(4)矩阵乘法运算

矩阵乘法运算是指两个矩阵相乘,相乘的两个矩阵需要满足如下条件:第一个矩阵的列数和第二个矩阵的行数必须相同。例如:A是一个2行3列的矩阵,B是一个3行2列的矩阵,A与B相乘后得到2行2列的矩阵。

>>> import numpy as np
>>> A = np.array([[1,2,3],[4,5,6]])
>>> B = np.array([[2,3],[5,6],[7,8]])
>>> C = np.matmul(A,B)
>>> C
array([[33, 39],
       [75, 90]])
>>>

(5)求解线性方程

机器学习数学运算中比较常见的问题之一是求解线性方程。 这是一个例子,我们来寻找解决方程的向量x。

线性方程: Ax = b

其中A是一个已知矩阵,b是一个已知向量,x是我们要求的未知向量,向量x的每一个元素都是未知的。矩阵A的每一行和b中对应的元素构成一个约束。

对于上面的线性方法组,可以使用NumPy线性计算linalg模块的solve函数来求解线性方程组。

>>> import numpy as np
>>> A = ([[2,1,-2],[3,0,1],[1,1,-1]])
>>> b = ([-3,5,-2])
>>> x = np.linalg.solve(A,b)
>>> x
array([ 1., -1.,  2.])
我要评论
全部评论
郎宏林
授课老师
授课老师简介
项目经理,系统分析和架构师,从事多年中文信息处理技术。熟悉项目管理、擅长项目需求分析和设计、精通Java、C#、Python等编程语言。
下载APP

手机、电脑同步学

用微信或手机浏览器扫描二维码,即可下载APP。

  • 备案号:鲁ICP备15001146号
  • @1997-2018 潍坊米粒花网络技术有限公司版权所有