Python numpy之線性代數與隨機漫步
線性代數
線性代數,矩陣計算,優化與內存;比如矩陣乘法,分解,行列式等數學知識,是所有數組類庫的重要組成部分。和MATLAB等其他語言相比,numpy的線性代數中有所不同的是矩陣相乘不是點積運算而是逐個元素計算,因此在numpy裡面都有一個特定的函數來計算,它就是dot,
語法如下:
numpy之線性代數函數
diag |
將一個方陣的對角(或非對角)元素作為一維數組返回,或者將一個一維數轉換為一個方陣,並且在非對角線上有零點 |
dot |
矩陣點乘 |
trace |
計算對角元素和 |
det |
計算矩陣行列式 |
eig |
計算方陣特征值和特征向量 |
inv |
計算方陣的逆矩陣 |
pinv |
計算矩陣的偽逆 |
qr |
計算QR分解 |
svd |
計算奇異值分解 |
solve |
求x的線性系統:Ax = b,其中A是方陣 |
lstsq |
計算Ax = b 的最小二乘解 |
偽隨機數生成
numpy.random模塊填補瞭Python內建的random模塊的不足,可以高效的生成多種概率分佈下的完整樣本數組。比如我們使用normal來獲得一個8*8的正態分佈樣本數組
隨機數種子:
什麼是隨機數種子?舉一個簡單的例子,如果我的隨機種子是100,那麼計算機就會在0-100中隨機產生,看下面
隨機種子是1111….
seed |
向隨機數生成器傳遞隨機狀態種子 |
permutation |
返回一個序列的隨機排列,或者返回一個亂序的整數范圍序列 |
shuffle |
隨機排列一個序列 |
rand |
從均勻分佈中抽取樣本 |
randint |
根據給定的由低到高的范圍抽取隨機整數 |
randn |
從均值0方差1的正態分佈中抽取樣本(MATLAB型接口) |
binomial |
從二項分佈中抽取樣本 |
normal |
從高斯分佈中抽取樣本 |
beta |
從beta中抽取樣本 |
chisquare |
從卡方分佈中抽取樣本 |
gamma |
從伽馬分佈中抽取樣本 |
uniform |
從均勻分佈抽取樣本 |
上述的表格如果你看不懂,可以去看一看概率論與數理統計的知識,方便你深度理解每一個概念和用法
隨即漫步
示例
上面模擬的是一個簡單的隨機漫步,就比如說我們的擲硬幣,每次的結果1或者-1,然後計算積累值
到此這篇關於Python numpy之線性代數與隨機漫步的文章就介紹到這瞭,更多相關Python numpy線性代數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 關於Python下的Matlab函數對應關系(Numpy)
- python數據分析Numpy庫的常用操作
- python中NumPy的安裝與基本操作
- Python隨機數種子(random seed)的使用
- Python機器學習三大件之一numpy