NumPy和SciPy的区别
NumPy:N维数组容器
SciPy:科学计算函数库(线性代数、常微分方程、信号处理、图像处理、矩阵等)
integral 积分
optimize 最优化
interpolation 插值
linear 线性计算
others
import numpy as np from scipy.integrate import quad, dblquad, nquad
#积分
print("quad:")
print(quad#积分
(lambda x:np.exp(-x),#函数
0,#下界
np.inf#上界
))
print("dblquad:")
print(dblquad#双重积分
(lambda t,x:np.exp(-x*t)/t**3, 0, np.inf, lambda x:1,lambda x:np.inf))
def f(x, y): #积分函数
return x * y
def bound_y(): #积分内容边界
return [0, 0.6]
def bound_x(y): #积分内容边界
return [0, 1 - 3 * y]
print("nquad:")
print(nquad(f, [bound_x, bound_y]))#多维积分,#nquad(积分函数,积分边界)。

#优化器
#optimizer
from scipy.optimize import minimize
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,0.8,1.9,1.2])
res=minimize(rosen,x0,method=‘nelder-mead‘,options={‘xtol‘:1e-8,‘disp‘:True})
print(‘rose mini‘,res.x)
def func(x):#目标函数
return (2*x[0]*x[1]+2*x[0]-x[0]**2-2*x[1]**2)
def func_deriv(x):#偏导数
dfdx0=(-2*x[0]+2*x[1]+2)
dfdx1=(2*x[0]-4*x[1])
return np.array([dfdx0,dfdx1])
cons = ({‘type‘: ‘eq‘,
‘fun‘: lambda x: np.array([x[0] ** 3 - x[1]]),
‘jac‘: lambda x: np.array([3.0 * (x[0] ** 2.0), -1.0])},
{‘type‘: ‘ineq‘,
‘fun‘: lambda x: np.array([x[1] - 1]),
‘jac‘: lambda x: np.array([0.0, 1.0])})
res=minimize(func,[-1.0,1.0],jac=func_deriv,constraints=cons,method=‘SLSQP‘,options={‘disp‘:True})
print("restrict:",res)
from scipy.optimize import root
def fun(x):
return x+2*np.cos(x)
sol=root(fun,0.1)
print(‘root‘,sol.x,sol.fun)
#插值
#3-interpolation x=np.linspace(0,1,10) y=np.sin(2*np.pi*x) from scipy.interpolate import interp1d li=interp1d(x,y,kind=‘cubic‘) x_new=np.linspace(0,1,50) y_new=li(x_new) figure() plot(x,y,‘r‘,label=‘basic‘) plot(x_new,y_new,‘g‘,label=‘new‘) plt.legend() plt.show()

#线性计算
#4.linear from scipy import linalg as lg arr=np.array([[1,2],[3,4]]) print(‘det:‘,lg.det(arr))#求方阵的行列式 print(‘inv‘,lg.inv(arr))#求一个方阵的逆矩阵 b=np.array([6,14]) print(‘sol:‘,lg.solve(arr,b)) print(‘eig:‘,lg.eig(arr))#特征值
#矩阵的分解
#矩阵的分解 print(‘lu:‘,lg.lu(arr)) print(‘qr:‘,lg.qr(arr)) print(‘svd:‘,lg.svd(arr)) print(‘schur:‘,lg.schur(arr))

原文:https://www.cnblogs.com/elly01/p/12695249.html