python科学计算,Python科学计算

Python能否进行大规模数值计算?

python科学计算,Python科学计算


Python 是非常适合做数值计算的 , 几乎可以说 Python 是除了老牌的 Fortran、C、C之外最适合做数据科学的计算机语言了 。这从近些年 Python 的发展势头就能窥见一斑 。Python 已经力压 R 及 Matlab , 在数据科学领域风生水起 。TIOBE 最新发布的 9 月编程语言排行榜中 , Python 凭 4.67% 的增速以 0.26% 的优势力压 C , 逆袭成功进入 Top 3 。
Python 是一门免费 , 灵活且强大的开源语言 。使用 Python 能减少大量的开发时间 , 同时提供简洁易读的语法 。使用 Python 可以容易地进行数据操作、数据分析和可视化 。Python 提供了一整套功能强大的库 , 用于科学计算及机器学习相关应用 。Python 做数值计算的基础是 numpy 库 。numpy 是 Python 中最常用的数值计算库 , 提供了一个通用且功能强大的高维数组结构及大量的科学计算函数(其中相当一部分和 scipy 有交叉) , 是 Python 中几乎所有其他科学计算库的基础 。
Python 在 numpy 的基础上打造了一个完整的科学计算生态系统 , 其中最常用的包括:scipy: 在 numpy 的基础上提供了科学计算中各种常见问题的解决工具 , 包括数学物理中的各种特殊函数 , 数值积分 , 优化 , 插值 , 傅立叶变换 , 线性代数 , 信号处理 , 图像处理 , 随机数和概率分布 , 统计学等等 。sympy: Python 中的符号计算库 , 支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散数学、几何学、概率与统计、物理学等方面的功能 , 能在很大程度上代替 Mathematica 和 Matlab 的符号计算功能 。
IPython: 一个 Python 的交互式开发和计算环境 , 比 Python 自带的 shell 好用且功能强大得多 , 支持变量自动补全 , 自动缩进 , 支持 bash shell 命令 , 内置了许多很有用的功能和函数 。IPython notebook 可以将代码、图像、注释、公式和作图集于一体 , 已经成为用 Python 做教学、计算、科研的一个重要工具 。
matplotlb: Python 做科学计算最常用和最重要的画图和数据可视化工具包 。pandas: Python 中常用的数据分析包 , 适合时间序列及金融数据分析 。scikit-learn:Python的机器学习库 。它具有各种分类 , 回归和聚类算法 , 包括支持向量机 , 随机森林 , 梯度增强 , k 均值等各类机器学习算法 , 可以与 Python 数值和科学计算库 numpy 和 scipy 互操作 。
以上是 Python 中较为基础的数值和科学计算工具 , 一般来说只适用于在单台机器上进行计算工作 , 虽然可以使用多个线程或者 joblib 之类的工具进行并行加速(IPython.parallel模块例外 , 可以运行在一个由多台计算机组成的集群上) 。如果要进行更大规模的数值和科学计算 , 使用并行及分布式计算就很有必要了 。
Python 也提供了相应的工具来支持大规模的并行分布式计算 , 可以使用的工具有:Dask:Dask 是一个用于数值和科学计算的灵活的并行计算库 , 它提供了一个优化的并行任务调度器和若干并行的数据结构:Dask Array 是一个分布式并行的 numpy 数值 , Dask Bag 是一个分布式并行的 Python序列集合 , Dask Dataframe 是一个分布式并行的 Pandas dataframe 。

推荐阅读