6. 线性代数

  1. 逆矩阵:numpy.linalg.inv(a):获取a的逆矩阵(一个array-like对象)。

    • 如果传入的是多个矩阵,则依次计算这些矩阵的逆矩阵。

    • 如果a不是方阵,或者a不可逆则抛出异常

      transpose

  2. 单位矩阵:numpy.eye(N[, M, k, dtype]):返回一个二维单位矩阵行为N,列为M,对角线元素为1,其余元素为0。M默认等于Nk默认为0表示对角线元素为1(单位矩阵),如为正数则表示对角线上方一格的元素为1(上单位矩阵),如为负数表示对角线下方一格的元素为1(下单位矩阵)

  3. 对角线和:numpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None):返回对角线的和。

    • 如果a是二维的,则直接选取对角线的元素之和(offsert=0),或者对角线右侧偏移offset的元素之和(即选取a[i,i+offset]之和)
  • 如果a不止二维,则由axis1axis2指定的轴选取了取对角线的矩阵。

  • 如果a少于二维,则抛出异常

    trace

  1. 计算线性方程的解 6. 线性代数 - 图3numpy.linalg.solve(a,b):计算线性方程的解ax=b,其中a为矩阵,要求为秩不为0的方阵,b为列向量(长度等于方阵大小);或者a为标量,b也为标量。

    • 如果a不是方阵或者a是方阵但是行列式为0,则抛出异常

    solve

  2. 特征值:numpy.linalg.eig(a):计算矩阵的特征值和右特征向量。如果不是方阵则抛出异常,如果行列式为0则抛出异常。

    eig

  3. 奇异值分解:numpy.linalg.svd(a, full_matrices=1, compute_uv=1):对矩阵a进行奇异值分解,将它分解成u*np.diag(s)*v的形式,其中uv是酉矩阵,sa的奇异值组成的一维数组。 其中:

    • full_matrics:如果为True,则u形状为(M,M)v形状为(N,N);否则u形状为(M,K)v形状为(K,N)K=min(M,N)
    • compute_uv:如果为True则表示要计算uv。默认为True
    • 返回usv的元组
    • 如果不可分解则抛出异常

    svd