SciPy:一个科学计算大师,让数学运算更精确的Python库!

文摘   2024-11-16 11:49   重庆  

SciPy 是个神奇的家伙,跟你们天天用的NumPy是好兄弟。它就像是个数学天才,不光会基础运算,连那些复杂的微积分、线性代数、优化问题都是轻轻松松。要是你做科研、搞数据分析,不认识它可就亏大了。


要把SciPy请到你的电脑里,超简单:


pip install scipy

要是你已经装了Anaconda,那就更省事了,这位大神早就躺你电脑里了。


矩阵运算是不少人的噩梦,但有了SciPy的linalg模块,啥都不是事:

from scipy import linalg

import numpy as np

# 创建一个矩阵

A = np.array([[1, 2], [3, 4]])

b = np.array([5, 6])

# 解线性方程组 Ax = b

x = linalg.solve(A, b)

print(“方程组的解:”, x)

💡温馨提示:用linalg解方程比用numpy快多了,它用了一些特别的数学技巧,算起来贼溜。


记得高数课本上那些吓人的积分公式吗?SciPy表示都是小菜:


from scipy import integrate

import numpy as np

# 计算sin(x)从0到pi的定积分

result, error = integrate.quad(np.sin, 0, np.pi)

print(f“积分结果:{result:.6f}”)

积分结果精确到小数点后好几位,比咱用纸笔算靠谱多了。


写代码时遇到要找最小值、最大值的问题,optimize模块就是你的救星:


from scipy import optimize

# 定义一个抛物线函数

def f(x):

    return x**2 + 2*x + 2

# 找最小值

result = optimize.minimize(f, x0=0)

print(“最小值点:”, result.x[0])

这段代码能找到函数的最小值,不用你手动一点点试了。


处理音频信号、滤波,signal模块统统搞定:


from scipy import signal

import numpy as np

# 生成一个简单的信号

t = np.linspace(0, 1, 1000)

sig = np.sin(2*np.pi*10*t) # 10Hz的正弦波

# 设计一个低通滤波器

b, a = signal.butter(4, 0.2)

filtered = signal.filtfilt(b, a, sig)

💡温馨提示:用signal模块处理信号时,记得先想清楚采样频率,不然结果可能会怪怪的。


ndimage模块让图像处理变得超简单:


from scipy import ndimage

import numpy as np

# 假设我们有个简单的图像数组

img = np.array([[0, 0, 1], [0, 1, 0], [1, 0, 0]])

# 高斯模糊

blurred = ndimage.gaussian_filter(img, sigma=1.0)

好啦,现在你也是个科学计算达人了!SciPy里还藏着好多好玩的功能等着你去发现呢。记住一点,多查官方文档,里面有超多例子和详细说明。写代码遇到不会的就去翻翻,准能找到答案!

重庆城市TV
重庆广电城市TV旗下优质内容品牌,感谢您的关注!
 最新文章