1. 程式人生 > 實用技巧 >scipy的讀書報告

scipy的讀書報告

SciPy 提供了複製的演算法及其在 NumPy 中作為函式的用法。這將分配高階命令和多種多樣的類來操作和視覺化資料。

SciPy 將多個小型包整合在一起,每個包都針對單獨的科學計算領域。

其中的幾個子包是linalg(線性代數)、constants(物理和數學常數)和sparse(稀疏矩陣和相關例程)

值得注意的是,SciPy 為表示隨機變數的物件提供了內建的建構函式。 下面是SciPy 提供的多個子包中的 Linalg 和Stats
的幾個示例。由於子包是針對特點領域的。這使得SciPy成為資料科學的完美選擇。

1.SciPy 中的線性代數子包(scipy.linalg)應該以下列方式匯入:

import scipy
import numpy as np

from scipy import linalg
mat_ = np.array([[2,3,1],[4,9,10],[10,5,6]])    #建立矩陣
print(mat_)
#>[[ 2  3  1],[ 4  9 10],[10  5  6]]
linalg.det(mat_)        #矩陣的行列式
inv_mat = linalg.inv(mat_)  #矩陣的逆
print(inv_mat)
#>[[ 0.02409639 -0.07831325  0.12650602]
 #[ 0.45783133  0.01204819 -0.09638554]
#[-0.42168675 0.12048193 0.03614458]]

2.用於執行奇異值分解並存儲各個組成部分的程式碼:

comp_1, comp_2, comp_3 = linalg.svd(mat_)
print(comp_1)
print(comp_2)
print(comp_3)
# >[[-0.1854159   0.0294175  -0.98221971]
#  [-0.73602677 -0.66641413  0.11898237]
#  [-0.65106493  0.74500122  0.14521585]]
# [18.34661713  5.73710697  1.57709968]
# [[-0.53555313 -0.56881403 -0.62420625] # [ 0.84418693 -0.38076134 -0.37731848] # [-0.02304957 -0.72902085 0.6841033 ]]

3.SciPy.stats 是一個大型子包,包含各種各樣的統計分佈處理函式,可用於操作不同型別的資料集。

from scipy import stats
#從平均攝動3和標準攝動5的正常攝動中隨機產生大小為20的樣本
rvs_20 = stats.norm.rvs(3,5, size = 20)
print(rvs_20,'\n---')
#以a=100, b=130為形狀引數,隨機變數0.41計算貝塔分佈的CDF
cdf_ = scipy.stats.beta.cdf(0.41, a=100, b=130)
print(cdf_)
#>[-1.49288331 12.43018057 -1.98896686  2.84913596 -1.94158066 -2.53572229
# -3.23105148  3.49129889  6.29223385  0.57010285  1.87261406  7.0897752
# 2.64603964  4.81257768  7.21505841 -0.80754014 -4.14544522 -9.84438422
#0.43808749  2.96654881]
#---
#0.22500957436155394