mirror of
https://github.com/apachecn/ailearning.git
synced 2026-02-10 22:05:11 +08:00
199 lines
5.5 KiB
Markdown
199 lines
5.5 KiB
Markdown
# 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]:
|
||
|
||
```py
|
||
import numpy as np
|
||
import scipy as sp
|
||
import matplotlib as mpl
|
||
import matplotlib.pyplot as plt
|
||
|
||
```
|
||
|
||
使用 **Scipy** 中的子模块时,需要分别导入:
|
||
|
||
In [2]:
|
||
|
||
```py
|
||
from scipy import linalg, optimize
|
||
|
||
```
|
||
|
||
对于一些常用的函数,这些在子模块中的函数可以在 `scipy` 命名空间中调用。另一方面,由于 **`Scipy`** 以 **`Numpy`** 为基础,因此很多基础的 **`Numpy`** 函数可以在`scipy` 命名空间中直接调用。
|
||
|
||
我们可以使用 `numpy` 中的 `info` 函数来查看函数的文档:
|
||
|
||
In [3]:
|
||
|
||
```py
|
||
np.info(optimize.fmin)
|
||
|
||
```
|
||
|
||
```py
|
||
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]:
|
||
|
||
```py
|
||
np.lookfor("resize array")
|
||
|
||
```
|
||
|
||
```py
|
||
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]:
|
||
|
||
```py
|
||
np.lookfor("remove path", module="os")
|
||
|
||
```
|
||
|
||
```py
|
||
Search results for 'remove path'
|
||
--------------------------------
|
||
os.removedirs
|
||
removedirs(path)
|
||
os.walk
|
||
Directory tree generator.
|
||
|
||
``` |