6. 线性代数
逆矩阵:
numpy.linalg.inv(a)
:获取a
的逆矩阵(一个array-like
对象)。如果传入的是多个矩阵,则依次计算这些矩阵的逆矩阵。
如果
a
不是方阵,或者a
不可逆则抛出异常
单位矩阵:
numpy.eye(N[, M, k, dtype])
:返回一个二维单位矩阵行为N
,列为M
,对角线元素为1,其余元素为0。M
默认等于N
。k
默认为0表示对角线元素为1(单位矩阵),如为正数则表示对角线上方一格的元素为1(上单位矩阵),如为负数表示对角线下方一格的元素为1(下单位矩阵)对角线和:
numpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None)
:返回对角线的和。- 如果
a
是二维的,则直接选取对角线的元素之和(offsert=0
),或者对角线右侧偏移offset
的元素之和(即选取a[i,i+offset]
之和)
- 如果
如果
a
不止二维,则由axis1
和axis2
指定的轴选取了取对角线的矩阵。如果
a
少于二维,则抛出异常
计算线性方程的解 :
numpy.linalg.solve(a,b)
:计算线性方程的解ax=b
,其中a
为矩阵,要求为秩不为0的方阵,b
为列向量(长度等于方阵大小);或者a
为标量,b
也为标量。- 如果
a
不是方阵或者a
是方阵但是行列式为0,则抛出异常
- 如果
特征值:
numpy.linalg.eig(a)
:计算矩阵的特征值和右特征向量。如果不是方阵则抛出异常,如果行列式为0则抛出异常。奇异值分解:
numpy.linalg.svd(a, full_matrices=1, compute_uv=1)
:对矩阵a
进行奇异值分解,将它分解成u*np.diag(s)*v
的形式,其中u
和v
是酉矩阵,s
是a
的奇异值组成的一维数组。 其中:full_matrics
:如果为True
,则u
形状为(M,M)
,v
形状为(N,N)
;否则u
形状为(M,K)
,v
形状为(K,N)
,K=min(M,N)
compute_uv
:如果为True
则表示要计算u
和v
。默认为True
。- 返回
u
、s
、v
的元组 - 如果不可分解则抛出异常