Python在科学计算方面提供了完备的程序扩展库,包括机器学习、数学分析、可视化库、GPU并行库等。Continuum Analytics公司开发的Anaconda使得程序扩展库的管理非常方便。这个Python发行版本除了附带了ipython编程环境,也包含了200多个工具库,包括NumPy库,一个提供多维数组及矩阵运算功能的基础类库;SciPy库,在NumPy基础上添加众多科学计算所需的各种工具,它的核心计算部分是一些久经考验的Fortran数值计算库;Pandas库,在NumPy基础上提供类似电子表格的数据结构DataFrame,并以此为核心提供大量的数据的输入输出、清洗、处理和分析函数;Matplotlib库,一个简单且有效的数值可视化绘图类库;Scikit-Learn库,一个专门面向机器学习的算法库;此外,Anaconda还可以扩展安装深度学习算法库TensorFlow等。本章将主要介绍以上类库的导入及使用方法。
3.1.1 NumPy库介绍
NumPy是一个主要用于处理n维数组对象的Python工具包,是Python提供数值计算的基础模块,在使用Python进行科学计算时NumPy必不可少,Python的许多扩展模块都是基于NumPy开发的,对NumPy的深入了解将有助于高效地使用Pandas和SciPy这样的工具库。
Python标准库里提供了array模块,array对象和列表不同,它直接保存数值,和C语言的一维数组比较类似。但是由于它不支持多维,也没有各种运算函数,因此不适合做数值运算。NumPy的诞生弥补了这些不足,NumPy提供了两种基本的对象:ndarray(N-dimensional array object)和ufunc(universal function object)。ndarray(下文统称为数组)是存储单一数据类型的多维数组,ufunc是能够对数组进行处理的函数。
3.1.2 NumPy库的导入
为了在Python中使用NumPy(或其他任何Python库),首先必须导入NumPy库。在Anaconda安装成功以后,NumPy的导入与标准库导入的方法一致,示例代码:
import numpy as np
这条语句是将NumPy库导入当前Python程序文件中,一般使用np作为NumPy的别名。NumPy为Python带来了真正的多维数组功能,并且提供了丰富的函数库来处理这些数组。在下面示例中,使用如下公式计算π:
π = 4/1 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11 + 4/13 - ...
示例代码:
import numpy as np
n = 100000
np.sum(4.0 / np.r_[1:n:4, -3:-n:-4])
运行结果
3141592653589833
通过以上代码,可以发现在NumPy中使用数组运算替代通常使用的循环语句运算带来的简洁与便利。
网友评论