Python 資料分析之scipy

2021-08-26 20:24:24 字數 2791 閱讀 2882

scipy是一組專門解決科學計算中各種標準問題域的包的集合,主要包括下面這些包:

匯入積分模組:

import numpy as np #匯入numpy庫

from scipy import integrate #匯入定積分模組

scipy.integrate.quad(func,a,b):計算單重積分,引數分別為被積函式(f(x))、積分下限、積分上限

res, err = integrate.quad(np.sin, 0, np.pi/2) # 對sin函式在[0,$\pi/2$]區間上積分,quad函式返回兩個值,第乙個為積分結果,第二個為誤差值

print(integrate.quad(lambda x:x**2,0,1)) # 計算x**2的定積分,積分區間為0到1,並輸出結果

scipy.integrate.dblquad(func,a,b,gfun,hfun):計算雙重積分,引數分別為被積函式(f(y,x))、x的積分下限、x的積分上限、y的積分下限、y的積分上限

print(integrate.dblquad(lambda x,y:x**2+y,0,2,lambda x:0,lambda x:1)) #對x**2+y求定積分,x積分區間[0,1],y積分區間[0,2],並輸出結果
scipy.integrate.nquad(func,ranges):計算多重積分,引數分別為被積函式(f(x0,x1,…,xn))、積分區間(格式為[[a,b],[c,d],[e,f]],依次為x0、x1、x2、的積分區間)

def f(x,y):

return x**2+y

def bound_x():

return [0,1]

def bound_y():

return [0,2]

print(integrate.nquad(f,[bound_x,bound_y]))

匯入模組

import numpy as np #匯入numpy庫

from scipy import optimize #匯入優化模組

scipy.optimize.minimize(func,x0,args=(),method=none,jac=none):計算標量函式的最小值,引數分別為標量函式、初值、、尋優方法

尋優方法有:

匯入模組

import numpy as np #匯入numpy庫

from scipy import interpolate #匯入interpolate模組

import matplotlib.pyplot as plt #匯入繪圖模組

x = np.linspace(0, 1, 10) #建立陣列,相當於x

y = np.sin(2 * np.pi * x) #相當於y

linear_f = interpolate.interp1d(x, y) #線性插值函式

x_new = np.linspace(0, 1, 50) #插值後的x

y_new = linear_f(x_new) #線性插值後的y

cubic_f = interpolate.interp1d(x, y, kind='cubic') #應用插值函式

cubic_y = cubic_f(x_new) #插值後的y值

展示效果

plt.figure()

plt.plot(x, y, 'o', ms=6, label='x')

plt.plot(x_new, y_new, label='linear interp')

plt.plot(x_new, cubic_y, label='cubic interp')

plt.legend()

plt.show()

匯入模組

import numpy as np #匯入numpy庫

from scipy import linalg as lg #匯入scipy庫的linalg模組

arr=np.array([[1,2],[3,4]]) #建立方陣arr

b=np.array([6,14]) #建立矩陣b

scipy.linalg.det():計算方陣的行列式

print('det:',lg.det(arr)) #求矩陣arr的行列式
scipy.linalg.inv():計算方陣的逆矩陣

print('inv:',lg.inv(arr)) #求矩陣arr的逆矩陣
print('eig:',lg.eig(arr)) #求矩陣arr的特徵向量
print('svd:',lg.svd(arr)) #對矩陣arr進行svd分解
print('lu:',lg.lu(arr)) #對矩陣arr進行lu分解
print('qr:',lg.qr(arr)) #對矩陣arr進行qr分解
print('schur:',lg.schur(arr)) #對矩陣arr進行schur分解
print('sol:',lg.solve(arr,b)) #求方程組arr*x=b的解

Python之資料分析(寶可夢資料分析)

在此感謝阿里雲天池平台提供的學習平台,並提供相應的教程供小白們學習資料分析。seaborn庫 seaborn 是基於 python 且非常受歡迎的圖形視覺化庫,在 matplotlib 的基礎上,進行了更高階的封裝,使得作圖更加方便快捷。即便是沒有什麼基礎的人,也能通過極簡的 做出具有分析價值而又十...

python資料分析之Numpy

numpy系統是python的一種開源的數值計算擴充套件 ndarray 多維陣列 所有元素必須是相同型別 ndim屬性,維度個數 shape屬性,各維度大小 dtype屬性,資料型別 coding utf 8 import numpy as np 生成指定維度的隨機多維資料 data np.ran...

Python資料分析之matplotlib中文顯示

以後嘗試將筆記搬到csdn上,希望能幫到有需要的人。matplotlib的中文顯示問題網上有很多答案,但自己在使用的時候,就算是參考了其他人的答案,也出了一些問題,特此記錄一篇。可以在jupyter notebook中執行 import random import matplotlib.pyplot...