SciPy是一个基于NumPy的高级模块,在符号计算,信号处理,数值优化等任务中有突出表现,覆盖了绝大部分科学计算领域。
子模块名称 | 用途描述 |
scipy.cluster | 主流的聚类算法 |
scipy.constants | 数学和物理常数 |
scipy.fftpack | 快速傅里叶变换 |
scipy.integrate | 求解积分和常微分方程 |
scipy.linalg | 线性代数 |
scipy.ndimage | N维图像处理 |
scipy.signal | 信号处理 |
scipy.spatial | 空间数据结构和算法 |
scipy.stats | 统计分布及相关函数 |
我对SciPy模块的理解其中最重要是:“向量化思想”----->>>"符号计算“和”函数向量化”
from scipy import poly1d print "******SciPy的符号计算******" p=poly1d([3,4,5]) print p #相当于3X^2+4X+5 print p+p print p*p #相当于9X^4+24X^3+46X^2+40X+25 print p([1,2,3]) print "P(x)的不定积分,指定常数为2" print p.integ(k=2) print "P(x)的一阶导数" print p.deriv(1) #表示求1阶导数 print p.deriv(2) #表示求2阶导数 print "********SciPy函数向量化********" import numpy as np def Compare(a,b): if a>b: return a-b else: return a+b print Compare(10, 3) print Compare(4, 16) vec_compare=np.vectorize(Compare) print vec_compare([10,4,8,26],[3,16,8,7])
结果:
******SciPy的符号计算****** 2 3 x + 4 x + 5 2 6 x + 8 x + 10 4 3 2 9 x + 24 x + 46 x + 40 x + 25 [12 25 44] P(x)的不定积分,指定常数为2 3 2 1 x + 2 x + 5 x + 2 P(x)的一阶导数 6 x + 4 6 ********SciPy函数向量化******** 7 20 [ 7 20 16 19]