SciPy 是一个开源的 Python 算法库和数学工具,Scipy 是基于 Numpy 的科学计算库,用于数学、科学、工程学等领域,很多有一些高阶抽象和物理模型需要使用 Scipy。SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。
01 文件读写
目前在国内Matlab仍然非常流行,Matlab使用的数据格式通常是.mat文件。对此,Scipy.io包提供了可以导入导出.mat文件的接口,这样,Python和Matlab的协同工作就变得非常容易了。示例代码如下所示:
from scipy import io as spio import numpy as np a=np.arange(10) spio.savemat('a.mat',{'a':a}) data = spio.loadmat('a.mat', struct_as_record=True) data['a']
Out:
array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
02 线性代数运算
在SciPy中,线性代数运算使用的是scipy.linalg。scipy.linalg.det()可用于计算矩阵的行列式,示例代码如下:
from scipy import linalg m=np.array([[1,2],[3,4]]) linalg.det(m)
Out:
-2.0
03 优化和拟合
求解最大值最小值之类的问题即为优化问题,在SciPy中,scipy.optimization提供了最小值、曲线拟合等算法。示例代码如下:
import numpy as np from scipy import optimize import matplotlib.pyplot as plt def f(x): return x**2+20*np.sin(x) x=np.arange(-10,10,0.1) plt.plot(x,f(x))
由图3-1中可以看到,对应的最小值的横坐标大约是-2。我们可以用暴力穷举法来计算最小值,代码如下
grid=(-10,10,0.1) x_min=optimize.brute(f,(grid,)) x_min Out: array([-1.42754883])
当然,当数据量较大的时候,穷举法速度会很慢。以上就是“python基础代码让你了解Scipy”的详细内容,想要了解更多Python教程欢迎关注编程学习网
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/8437/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取