本文共 1370 字,大约阅读时间需要 4 分钟。
转载https://blog.csdn.net/q583501947/article/details/76735870
Scipy简介 Scipy是一个高级的科学计算库,它和Numpy联系很密切,Scipy一般都是操控Numpy数组来进行科学计算,所以可以说是基于Numpy之上了。Scipy有很多子模块可以应对不同的应用,例如插值运算,优化算法、图像处理、数学统计等。
以下列出Scipy的子模块:(具体的英文参考文档https://docs.scipy.org/doc/scipy-0.18.1/reference/scipy-optimize-modindex.html)
模块名 功能
scipy.cluster 向量量化 scipy.constants 数学常量 scipy.fftpack 快速傅里叶变换 scipy.integrate 积分 scipy.interpolate 插值 数据输入输出 scipy.linalg 线性代数 scipy.ndimage N维图像 scipy.odr 正交距离回归 scipy.optimize 优化算法 scipy.signal 信号处理 scipy.sparse 稀疏矩阵 scipy.spatial 空间数据结构和算法 scipy.special 特殊数学函数 scipy.stats 统计函数 文件输入和输出: 这个模块可以加载和保存matlab文件:>>> from scipy import io as spio>>> a = np.ones((3, 3))>>> spio.savemat('file.mat', {'a': a}) # 保存字典到file.mat>>> data = spio.loadmat('file.mat', struct_as_record=True)>>> data['a']array([[ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.]])
关于这个模块的文档:
线性代数操作:scipy.linalg 假如我们要计算一个方阵的行列式,我们需要调用det()函数:>>> from scipy import linalg>>> arr = np.array([[1, 2],... [3, 4]])>>> linalg.det(arr)-2.0>>> arr = np.array([[3, 2],... [6, 4]])>>> linalg.det(arr) 0.0
比如求一个矩阵的转置:
>>> arr = np.array([[1, 2],... [3, 4]])>>> iarr = linalg.inv(arr)>>> iarrarray([[-2. , 1. ], [ 1.5, -0.5]])
快速傅里叶变换:scipy.fftpack
优化器:scipy.optimize scipy.optimize通常用来最小化一个函数值,我们举个栗子: 构建一个函数并绘制函数图: Sparse matrices (scipy.sparse)¶