强大的Python函数库:scipy、matplotlib中的常用函数与用法
scipy函数库是一款针对科学计算的Python扩展库,包含了许多高级数学、信号处理、优化、统计学等功能的函数,本文将介绍其中一些常用函数。
1. integrate(积分函数)
integrate是scipy中的积分函数,主要包含定积分和数值积分两种方式。
定积分:
from scipy.integrate import quad
def integrand(x):
return x**2
ans, err = quad(integrand, 0, 1)
print(ans) #1/3
print(err) #4.4408920985e-15
数值积分:
from scipy.integrate import trapz
import numpy as np
x = np.arange(0, 1, 0.01)
y = x**2
ans = trapz(y, x)
print(ans) #0.32835000000000004
2. optimize(优化函数)
optimize是scipy中的优化函数,主要包括最小化和最大化两种方式。
最小化:
from scipy.optimize import minimize
def f(x):
return x**2 + 6/x
x0 = 2
res = minimize(f, x0)
print(res.x) #[-2.44949439]
最大化:
from scipy.optimize import maximize
def f(x):
return -x**2 + 6/x
x0 = 2
res = maximize(f, x0)
print(res.x) #[0]
3. fftpack(傅里叶变换函数)
fftpack是scipy中的傅里叶变换函数,主要包含傅里叶变换、离散傅里叶变换等。
傅里叶变换:
from scipy.fftpack import fft
import numpy as np
x = np.array([1, 2, 3, 4])
y = fft(x)
print(abs(y)) #[10. 2.00000000e+00 0.00000000e+00 2.00000000e+00]
离散傅里叶变换:
from scipy.fftpack import fftn
x = np.random.random((2, 2))
y = fftn(x)
print(y)
array([[ 2.03889321+0.j , -0.07309508+0.07309508j],
[-0.07309508-0.07309508j, 0.05299005+0.j ]])
4. interpolate(插值函数)
interpolate是scipy中的插值函数,主要包括线性插值,多项式插值和样条插值等。
线性插值:
from scipy.interpolate import interp1d
import numpy as np
x = np.linspace(0, 10, num=11, endpoint=True)
y = np.cos(-x**2/9.0)
f = interp1d(x, y)
print(f([0.5, 1.5])) #array([0.99499119, 0.94520071])
多项式插值:
from scipy.interpolate import lagrange
x = np.array([0,1,2])
y = np.array([1,3,2])
poly = lagrange(x, y)
print(poly) #poly1d([ 1. , -2. , 3.])
样条插值:
from scipy.interpolate import CubicSpline
x = np.array([0, 1, 2, 3])
y = np.array([0, 2, 1, 1])
cs = CubicSpline(x, y)
print(cs([0.5, 1.5, 2.5])) #array([1.41935484, 1.08064516, 0.41935484])
5. matplotlib绘图函数
matplotlib是Python中最流行的图形库,用于二维图形可视化。
以绘制正弦曲线为例:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title('sin')
plt.show()
以上就是scipy、matplotlib中常用函数的一些概括和使用方法,可以为进行科学计算的开发者和科研工作者提供便利。
