
线性代数Linear Algebra
线性代数是任何数组库的重要组成部分,Numpy包含了线性代数所需的所有功能。
np.dot是Numpy提供的用于矩阵乘法的函数
In [1]: import numpy as np
In [2]: x = np.array([[1, 2, 3], [4, 5, 6]])
In [3]: y = np.array([[6, 23], [-1, 7], [8, 9]])
In [4]: x
Out[4]:
array([[1, 2, 3],
[4, 5, 6]])
In [5]: y
Out[5]:
array([[ 6, 23],
[-1, 7],
[ 8, 9]])
In [6]: np.dot(x, y)
Out[6]:
array([[ 28, 64],
[ 67, 181]])
x.dot(y)等价于np.dot(x,y)
In [7]: x.dot(y)
Out[7]:
array([[ 28, 64],
[ 67, 181]])
@运算符也可以用作中缀运算符,进行矩阵乘法
In [8]: x@y
Out[8]:
array([[ 28, 64],
[ 67, 181]])
numpy.linalg提供了可以求解矩阵分解运算和矩阵求逆之类的工具。
In [9]: from numpy.linalg import inv
In [10]: x = np.random.randn(3, 3)
In [11]: mat = x.T.dot(x)
In [12]: mat
Out[12]:
array([[ 0.75374653, 0.33570232, -0.31574004],
[ 0.33570232, 1.19771393, -0.06018373],
[-0.31574004, -0.06018373, 1.87161218]])
inv可以求矩阵的逆:
In [13]: inv(mat)
Out[13]:
array([[ 1.6343851 , -0.44495946, 0.26141179],
[-0.44495946, 0.95741487, -0.04427772],
[ 0.26141179, -0.04427772, 0.57697496]])
In [14]: mat.dot(inv(mat))
Out[14]:
array([[ 1.00000000e+00, 1.32672710e-17, -1.50678728e-17],
[-1.18986098e-17, 1.00000000e+00, -4.51719881e-18],
[-5.35691802e-17, -1.15608658e-18, 1.00000000e+00]])
trace可以求矩阵的迹(矩阵对角线之和):
In [15]: np.trace(mat)
Out[15]: 3.8230726392316376
det可以计算矩阵行列式:
In [16]: from numpy.linalg import det
In [17]: det(mat)
Out[17]: 1.3693430633286146
更多的numpy线性代数函数见下面表格:
英文版


中文版

这篇比较简单,忘记了相关的函数查阅一下就行了。

往期回顾



Stay hungry, stay foolish
快来,点在看啦

文章转载自Yuan的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




