学习了numpy和matplotlib,基本上线性代数,概率论的很多计算啊之类的都可以很容易的实现了。此外再学习下scipy这个科学函数库吧。
scipy包包含致力于科学计算中常见问题的各个工具箱。它的不同子模块相应于不同的应用。像插值,积分,优化,图像处理,特殊函数等等。
1 模块
scipy 由一些特定功能的子模块组成,它们全依赖numpy,但是每个之间基本独立
模块 | 功能 |
scipy.cluster | 矢量量化 / K-均值 |
scipy.constants | 物理和数学常数 |
scipy.fftpack | 傅里叶变换 |
scipy.integrate | 积分程序 |
scipy.interpolate | 插值 |
scipy.io | 数据输入输出 |
scipy.linalg | 线性代数程序 |
scipy.ndimage | n维图像包 |
scipy.odr | 正交距离回归 |
scipy.optimize | 优化 |
scipy.signal | 信号处理 |
scipy.sparse | 稀疏矩阵 |
scipy.spatial | 空间数据结构和算法 |
scipy.special | 任何特殊数学函数 |
scipy.stats | 统计 |
之后就学习下部分几个模块吧。
2 插值 scipy.interpolate
scipy.interpolate对从实验数据拟合函数来求值没有测量值存在的点非常有用
正弦函数的实验:
运行结果如下:
3 信号处理 scipy. signal
3.1 移除信号的线性趋势
运行结果:
3.2FFT重采样
运行结果:
4 统计 scipy.stats
scipy.stats包括统计工具和随机过程的概率过程。各个随机过程的随机数生成器可以从numpy.random中找到。
模块 | 功能 |
rvs | 随机变量(就是从这个分布中抽一些样本) |
pdf | 概率密度函数 |
cdf | 累计分布函数 |
sf | 残存函数(1-CDF) |
ppf | 分位点函数(CDF的逆) |
isf | 逆残存函数(sf的逆) |
stats | 返回均值,方差,(费舍尔)偏态,(费舍尔)峰度 |
moment | 分布的非中心矩 |
4.1 二项分布
抛掷10次硬币,假设在该试验中正面朝上的概率为0.3。使用stats.binom.pmf计算每次观测的概率质量函数。
运行结果:
Mean: 2.9956
Sd: 1.44187
4.2 泊松分布
运行结果:
Mean: 2.105
Sd: 1.4677
4.3 正态分布
4.4 指数分布
运行结果如下:
Mean: 2.01166
Sd: 2.02959
5 优化和拟合 scipy.optimize
优化是找到最小值或等式的数值解的问题
运行结果:
Optimization terminated successfully.
Current function value: -7.945823
Iterations: 5
Function evaluations: 24
Gradient evaluations: 8
[-1.30644003]
[ 3.83746663]
[-1.30641113]
3.8374671195
[ 0.]
[-2.47948183]
[ 1.0089413 9.92366871]
参考:
http://blog.chinaunix.net/uid-21633169-id-4437868.html
基本上把python用到的数学库简单的过了一遍,相信之后遇到一些函数库也不会那么陌生了。接下去就开始真正的学习机器学习算法了。