欢迎访问宙启技术站
智能推送

强大的Python函数库:scipy、matplotlib中的常用函数与用法

发布时间:2023-06-14 17:56:18

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中常用函数的一些概括和使用方法,可以为进行科学计算的开发者和科研工作者提供便利。