Python系列--最全numpy的线性代数函数功能及用法

Python系列

  • 作为初学者,自己整理的numpy线性代数函数用法与功能,与大家分享!有帮助到您的,希望点个赞再走呗!整理不易,一起学习,共同进步啊~~
  • 若有错误的地方欢迎留言指正!!

numpy的线性代数函数

import numpy as np    # 先导入numpy模块

(1)diag

功能:形成一个以一维数组为对角线元素的矩阵或输出矩阵的对角线元素
用法:np.diag(a)
例:

a = [1,2,3]                      # 一维数组
np.diag(a)

Out:array([[1, 0, 0],
           [0, 2, 0],
           [0, 0, 3]])           # 输出以a为对角线元素的矩阵(方阵)
b = ([1,2,3],[4,5,6],[7,8,9])    # 多维数组
np.diag(b)

Out:array([1, 5, 9])            # 输出矩阵b的对角线元素

(2)dot

功能:计算矩阵的乘法(两个数组的内积/点积)
用法:np.dot(a,b)
例:

a = ([1,2],[3,4])
b = ([5,6],[7,8])
np.dot(a,b)

Out:array([[19, 22],
            [43, 50]])

(3)trace

功能:计算矩阵的迹(对角线元素的和)
用法:np.trace(a)
例:

a = ([1,2,3],[4,5,6],[7,8,9])
np.trace(a)

Out:15

(4)det

功能:计算矩阵(方阵)的行列式值
用法:np.linalg.det(a)
例:

a = ([1,2],[3,4])
np.linalg.det(a)

Out:-2

(5)eig

功能:计算方阵的特征值和特征向量
用法:np.linalg.eig(a)
例:

a = ([1,2],[3,4])
e,v = np.linalg.eig(a)

In:e
Out: array([-0.37228132,  5.37228132])      # 特征值
In:v
Out: array([[-0.82456484, -0.41597356],
       	     [ 0.56576746, -0.90937671]])    # 特征向量

(6)inv

功能:计算矩阵的逆矩阵
用法:np.linalg.inv(a)
例:

a = ([1,2],[3,4])
np.linalg.inv(a)

Out:array([[-2. ,  1. ],
            [ 1.5, -0.5]])

(7)qr

功能:QR分解(正交分解)
用法:np.linalg.qr(a)
例:

a = ([1,2],[3,4])
q,r = np.linalg.qr(a)

In:q
Out:array([[-0.31622777, -0.9486833 ],
            [-0.9486833 ,  0.31622777]])
In:r
Out:array([[-3.16227766, -4.42718872],
         	[ 0.        , -0.63245553]])

(8)svd

功能:SVD分解(奇异值分解)
用法:np.linalg.svd(a,full_matrices=1,compute_uv=1)
例:

a = ([1,2],[3,4])
u,s,v = np.linalg.svd(a)

In:u
Out:array([[-0.40455358, -0.9145143 ],
           [-0.9145143 ,  0.40455358]])
In:s
Out:array([5.4649857 , 0.36596619])
In:v
Out:array([[-0.57604844, -0.81741556],
           [ 0.81741556, -0.57604844]])

(9)solve

功能:解形如AX=B的线性矩阵方程(计算A^(-1)B的解)
用法:np.linalg.solve(a,b)
例:

a = [[1,1,1],[ 0,2,5],[ 2,5,-1]]
b = [[6],[-4],[27]]
np.linalg.solve(a,b)	  

Out:array([[ 5.],
      		[ 3.],
      		[-2.]]) 

(10)lstsq

功能:估计线性模型中的系数(最小二乘解,求b=a*x中的a)
用法:np.linalg.lstsq(x,b)
例:

x = ([1,2],[3,4],[5,6],[7,8])
b = [-1,0.2,0.9,2.1]
np.linalg.lstsq(x,b)

Out:(array([ 1.95, -1.45]),
	  array([0.05]), 
	  2, 
	  array([14.2690955 ,  0.62682823]))

感谢浏览,别忘了点个赞鼓励一下哦(^^)~~

原创文章 5 获赞 9 访问量 802

猜你喜欢

转载自blog.csdn.net/weixin_45665432/article/details/105738079