Scipy
关键词: 数值计算库
介绍:(选自-博主Are you ready)
文章链接:https://blog.csdn.net/pythoncsdn111/article/details/98395661
- Scipy依赖于Numpy
- Scipy包含的功能:最优化、线性代数、积分、插值、拟合、特殊函数、快速傅里叶变换、信号处理、图像处理、常微分方程求解器等
- 应用场景:Scipy是高端科学计算工具包,用于数学、科学、工程学等领域
1、Integral(积分)
#encoding=utf-8
import numpy as np
from scipy.integrate import quad,dblquad,nquad # 引入积分和二元积分模块、n元积分
def main():
# 函数以e为底的-x,范围0到无穷大的一元积分
print(quad(lambda x:np.exp(-x),0,np.inf))
#输出结果是该函数的结果和误差范围
# 函数表达式 np.exp(-x*t)/t**3的二元积分,其中t和x的取值为(0,,inf)
print(dblquad(lambda t,x:np.exp(-x*t)/t**3,0,np.inf,lambda x:1,lambda x:np.inf))
# n元积分
def f(x,y):
return x*y
def bound_y():
return [0,0.5]
def bound_x(y):
return [0,1-2*y]
print(nquad(f,[bound_x,bound_y]))
main()
2、Optimizer(优化器)
#encoding=utf-8
import numpy as np
from scipy.optimize import minimize # 计算最小值模块
from scipy.optimize import root # 计算最小值模块
def main():
def rosen(x):
return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0+(1-x[:-1])**2.0)
x0=np.array([1.3,0.7,1.9,2.2])
res = minimize(rosen,x0,method='nelder-mead',options={'xtol':1e-8,'disp':True})
print('Rose Mini:',res)
def fun(x):
return x+2*np.cos(x)
sol = root(fun,0.1)
print('Root:',sol.x,sol.fun)
main()
3、Interpolation(插值)
#encoding=utf-8
import numpy as np
from scipy.interpolate import interp1d # 一维插值
import matplotlib.pyplot as plt
from pylab import *
def main():
x = np.linspace(0,1,10)
y = np.sin(2*np.pi*x)
li = interp1d(x,y,kind='cubic')
x_new = np.linspace(0,1,50)
y_new = li(x_new)
plt.figure(figsize=[20,8])
plot(x,y,'r')
plot(x_new,y_new,'g')
show()
print(y_new)
main()
4、Linear(线性计算和矩阵分解)
5、Others
【git地址】https://gitee.com/sienhao/data-analysis-python.git
关注公众号,获取更多资讯!
(求三连!!!)