Scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。
scipy.cluster向量计算/Kmeans scipy.constants物理和数学常量 scipy.fftpack傅立叶变换 快速傅立叶变换(FFT),是快速计算序列的离散傅立叶变换(DFT)或其逆变换的方法。FFT会通过把DFT矩阵分解为稀疏因子之积来快速计算此类变换。 fftfreq():生成样本序列fft():计算快速傅立叶变换 scipy.integrate积分程序 scipy.interpolate插值 scipy.io数据输入输出 savemat loadmat scipy.linalg线性代数程序 scipy.ndimagen维图像包 scipy.odr正交距离回归 scipy.optimize优化 函数最值、曲线拟合和求根的算法 fmin_bfgs(f,0) brute(f,(grid,)) fminbound(f,a,b) anneal模拟退火 fsolve(f,x) curve_fit()非线性最小二乘拟合 leatsq()最小二乘 github optimize类源码
import numpy as np from scipy.optimize import leastsq import matplotlib.pyplot as plt #训练数据 Xi = np.array([8.19,2.72,6.39,8.71,4.7,2.66,3.78]) Yi = np.array([7.01,2.78,6.47,6.71,4.1,4.23,4.05]) #定义拟合函数形式 def func(p,x): k,b = p return k*x+b #定义误差函数 def error(p,x,y,s): print(s) return func(p,x)-y #随机给出参数的初始值 p = [10,2] #使用leastsq()函数进行参数估计 s = '参数估计次数' Para = leastsq(error,p,args=(Xi,Yi,s)) k,b = Para[0]# 获得拟合线的k,b
#定义拟合函数图形 def func(x,p): A,k,theta = p return A*np.sin(2*np.pi*k*x+theta) #定义误差函数 def error(p,x,y): return y-func(x,p) #生成训练数据 #随机给出参数的初始值 p0 = [10,0.34,np.pi/6] A,k,theta = p0 x = np.linspace(0,2*np.pi,1000) #随机指定参数 y0 = func(x,[A,k,theta]) #randn(m)从标准正态分布中返回m个值,在本例作为噪声 y1 = y0 + 2*np.random.randn(len(x)) #进行参数估计 Para = leastsq(error,p0,args=(x,y1)) A,k,theta = Para[0]
scipy.signal信号处理 scipy.sparse稀疏矩阵 scipy.spatial空间数据结构和算法 scipy.special一些特殊的数学函数 函数 贝塞尔函数 椭圆函数。。。。 special库中的特殊函数都是超越函数,所谓超越函数是指变量之间的关系不能用有限次加、减、乘、除、乘方、开方 运算表示的函数。 scipy.stats统计
scipy.misc
imread imsave lena()