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]))

感謝瀏覽,別忘了點個贊鼓勵一下哦(^^)~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章