《Python数据分析基础教程:NumPy学习指南(第2版)》笔记0:前言

前言

NumPy是什么

NumPy,即Numeric Python的缩写。

尽管Python作为流行的编程语言非常灵活易用,但它本身并非为科学计算量身定做,在开发效率和执行效率上均不适合直接用于数据分析,尤其是大数据的分析和处理。 NumPy在保留Python语言优势的同时大大增强了科学计算和数据处理的能力

数据科学家们希望能够用最小的编程代价在大数据集上进行数值分析,他们希望自己编写的代码可读性好、执行效率高、运行速度快,并尽可能地贴近他们熟悉的一系列数学概念

在科学计算领域,有很多符合这些要求的解决方案。 CC++Fortran等编程语言各有优势,但它们不是交互式语言,并且被很多人
认为过于复杂。常见的商业产品还有MatlabMapleMathematica。这些产品提供了强大的脚本语言,但和通用编程语言比起来,功能依然很有限。另外还有一些类似于Matlab的开源工具,如RGNU OctaveScilab。显然,作为编程语言,它们都不如Python强大

NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。如果你的系统中已经装有**LAPACK**, NumPy的线性代数模块会调用它,否则NumPy将使用自己实现的库函数。 LAPACK是一个著名的数值计算库,最初是用Fortran写成的,Matlab同样也需要调用它。从某种意义上讲, NumPy可以取代MatlabMathematica的部分功能,并且允许用户进行快速的交互式原型设计。

NumPy由来

NumPy的前身是NumericNumeric最早发布于1995年,如今已经废弃了。

早在2001年,一些开发者受Numeric的启发共同开创了一个叫做SciPy的项目。 SciPy是一个开源的Python科学计算库,提供了类似于MatlabMapleMathematica的许多功能。那段时间,人们对于Numeric越来越不满。于是, Numarray作为Numeric的替代品问世了。 Numarray在某些方面比Numeric更强大,但是它们的工作方式却截然不同。

2005年, SciPy的早期发起人之一Travis Oliphant决定改变这一状况,他开始将Numarray的一些特性整合到Numeric中。

最初的NumPy其实是SciPy的一部分,后来才从SciPy中分离出来。如今, SciPy在处理数组和矩阵时会调用NumPy

为什么使用NumPy

对于同样的数值计算任务,使用NumPy要比直接编写Python代码便捷得多。这是因为NumPy能够直接对数组和矩阵进行操作,可以省略很多循环语句 ,其众多的数学函数也会让编写代码的工作轻松许多。

NumPy中数组的存储效率和输入输出性能均远远优于Python中等价的基本数据结构(如嵌套的list容器)。其能够提升的性能是与数组中元素的数目成比例的。对于大型数组的运算,使用NumPy的确很有优势。

对于TB级的大文件, NumPy使用内存映射文件来处理,以达到最优的数据读写性能。不过, NumPy数组的通用性不及Python提供的list容器,这是其不足之处

NumPy的大部分代码都是用C语言写成的,这使得NumPy比纯Python代码高效得多。 NumPy同样支持C语言的API,并且允许在C源代码上做更多的功能拓展。

你可能感兴趣的:(numpy,笔记)