SCIentific PYthon 简介
Ipython
提供了一个很好的解释器界面。
Matplotlib
提供了一个类似 Matlab
的画图工具。
Numpy
提供了 ndarray
对象,可以进行快速的向量化计算。
Scipy
是 Python
中进行科学计算的一个第三方库,以 Numpy
为基础。
Pandas
是处理时间序列数据的第三方库,提供一个类似 R
语言的环境。
StatsModels
是一个统计库,着重于统计模型。
Scikits
以 Scipy
为基础,提供如 scikits-learn
机器学习和scikits-image
图像处理等高级用法。
Scipy
Scipy
由不同科学计算领域的子模块组成:
子模块 | 描述 |
---|---|
cluster |
聚类算法 |
constants |
物理数学常数 |
fftpack |
快速傅里叶变换 |
integrate |
积分和常微分方程求解 |
interpolate |
插值 |
io |
输入输出 |
linalg |
线性代数 |
odr |
正交距离回归 |
optimize |
优化和求根 |
signal |
信号处理 |
sparse |
稀疏矩阵 |
spatial |
空间数据结构和算法 |
special |
特殊方程 |
stats |
统计分布和函数 |
weave |
C/C++ 积分 |
在使用 Scipy
之前,为了方便,假定这些基础的模块已经被导入:
In [1]:
- import numpy as np
- import scipy as sp
- import matplotlib as mpl
- import matplotlib.pyplot as plt
使用 Scipy 中的子模块时,需要分别导入:
In [2]:
- from scipy import linalg, optimize
对于一些常用的函数,这些在子模块中的函数可以在 scipy
命名空间中调用。另一方面,由于 Scipy
以 Numpy
为基础,因此很多基础的 Numpy
函数可以在scipy
命名空间中直接调用。
我们可以使用 numpy
中的 info
函数来查看函数的文档:
In [3]:
- np.info(optimize.fmin)
- fmin(func, x0, args=(), xtol=0.0001, ftol=0.0001, maxiter=None, maxfun=None,
- full_output=0, disp=1, retall=0, callback=None)
- Minimize a function using the downhill simplex algorithm.
- This algorithm only uses function values, not derivatives or second
- derivatives.
- Parameters
- ----------
- func : callable func(x,*args)
- The objective function to be minimized.
- x0 : ndarray
- Initial guess.
- args : tuple, optional
- Extra arguments passed to func, i.e. ``f(x,*args)``.
- callback : callable, optional
- Called after each iteration, as callback(xk), where xk is the
- current parameter vector.
- xtol : float, optional
- Relative error in xopt acceptable for convergence.
- ftol : number, optional
- Relative error in func(xopt) acceptable for convergence.
- maxiter : int, optional
- Maximum number of iterations to perform.
- maxfun : number, optional
- Maximum number of function evaluations to make.
- full_output : bool, optional
- Set to True if fopt and warnflag outputs are desired.
- disp : bool, optional
- Set to True to print convergence messages.
- retall : bool, optional
- Set to True to return list of solutions at each iteration.
- Returns
- -------
- xopt : ndarray
- Parameter that minimizes function.
- fopt : float
- Value of function at minimum: ``fopt = func(xopt)``.
- iter : int
- Number of iterations performed.
- funcalls : int
- Number of function calls made.
- warnflag : int
- 1 : Maximum number of function evaluations made.
- 2 : Maximum number of iterations reached.
- allvecs : list
- Solution at each iteration.
- See also
- --------
- minimize: Interface to minimization algorithms for multivariate
- functions. See the 'Nelder-Mead' `method` in particular.
- Notes
- -----
- Uses a Nelder-Mead simplex algorithm to find the minimum of function of
- one or more variables.
- This algorithm has a long history of successful use in applications.
- But it will usually be slower than an algorithm that uses first or
- second derivative information. In practice it can have poor
- performance in high-dimensional problems and is not robust to
- minimizing complicated functions. Additionally, there currently is no
- complete theory describing when the algorithm will successfully
- converge to the minimum, or how fast it will if it does.
- References
- ----------
- .. [1] Nelder, J.A. and Mead, R. (1965), "A simplex method for function
- minimization", The Computer Journal, 7, pp. 308-313
- .. [2] Wright, M.H. (1996), "Direct Search Methods: Once Scorned, Now
- Respectable", in Numerical Analysis 1995, Proceedings of the
- 1995 Dundee Biennial Conference in Numerical Analysis, D.F.
- Griffiths and G.A. Watson (Eds.), Addison Wesley Longman,
- Harlow, UK, pp. 191-208.
可以用 lookfor
来查询特定关键词相关的函数:
In [4]:
- np.lookfor("resize array")
- Search results for 'resize array'
- Search results for 'resize array'
numpy.chararray.resize Change shape and size of array in-place. numpy.ma.resize Return a new masked array with the specified size and shape. numpy.oldnumeric.ma.resize The original array's total size can be any size. numpy.resize Return a new array with the specified shape. numpy.chararray chararray(shape, itemsize=1, unicode=False, buffer=None, offset=0, numpy.memmap Create a memory-map to an array stored in a binary file on disk. numpy.ma.mvoid.resize .. warning::
还可以指定查找的模块:
In [5]:
- np.lookfor("remove path", module="os")
- Search results for 'remove path'
- Search results for 'remove path'
os.removedirs removedirs(path) os.walk Directory tree generator.