
Yuan的學習筆記
作者 Yuan
線性代數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線性代數函式見下面表格:
英文版


中文版

這篇比較簡單,忘記了相關的函式查閱一下就行了,如果對你有幫助的話,不妨點個贊吧!
—完—
公眾號 Yuan的學習筆記
作者 Yuan
關注我們來一起學習交流啊!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/265923.html
標籤:python
