跳到主要内容

Numpy 简介

图片来自 NumPy 中文网

1. 什么是 NumPy?

Numpy,(Numerical Python 的缩写),它是 Python 语言的一个扩展程序库,支持数组结构与矩阵运算,并且针对数组运算提供大量便捷的数学函数库。Numpy 大大简化了向量和矩阵的操作及处理流程,降低了数据开发的门槛。除了做数值计算和统计分析,在程序中处理和调试高级用例的时候,熟练掌握 Numpy 所带来的优势和便利也不言而喻。

纵观 Python 的开发生态,Numpy 在数据分析、机器学习和科学计算领域,有着举足轻重的定位。数据分析用到的 Pandas ,数据挖掘和深度学习用到的 Scikit-learn 和 Tensorflow,以及科学计算常用的 SciPy ,都是以 Numpy 为基础进行开发的。

2. NumPy 的特点

NumPy 是一个运行速度非常快的数学库,主要包含如下能力:

  • 一个高效的 N 维数组对象 ndarray;
  • 广播功能函数,无须循环即可对数组进行快速运算;
  • 读写磁盘以及操作内存映射文件;
  • 一个用于集成 C / C++ / Fortran 代码的工具;
  • 线性代数、傅里叶变换、随机数生成等功能。

其中 ndarray 对象是 NumPy 包的核心,ndarray 对象和标准的 Python 序列数据结构的显著区别在于:

  • ndarray 对象在创建时有固定的大小,这一点不同于 Python 列表。
  • ndarray 对象中的元素都具有相同的数据类型,因此在存储器中将具有相同的大小
  • ndarray 对象便于对大量据进行高级数学和其他类型的操作。在大数据时代,对几百万甚至更大的数据进行频繁的循环迭代计算,于每一个数据开发者而言都是一场巨大的灾难,而 Numpy 利用矢量化运算,可以有效地避免这一点。

3. Numpy 的应用领域

3.1 科学计算

NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数值计算或者统计分析。Python 作为 MatLab 的替代方案,现在越来越被视为一种更加高效和可扩展的实现语言。

3.1 数据分析

Numpy 专注于数组数据的处理,其和 Pandas 一起使用的时候,这种组合则将应用范畴从数据拓展到各种表格和杂乱的数据格式,是一个非常有用的工作助力。在大数据时代,经过合理的优化编排,Numpy/ Pandas 组合处理几个 G 的数据绰绰有余,甚至处理能力上探到几十个 G。

4. 为什么要学习 NumPy ?

Numpy 是基于 C 语言开发,因此继承了 C 语言运算速度快、消耗资源少等优点,并且 Numpy 被广泛应用于数据分析、机器学习和深度学习等领域,因此掌握 Numpy 对能力提升和职场晋升的重要性不言而喻。

5. 适用人群

越来越多的用于科学计算与分析的包以 Numpy 作为底层数据结构基础,并且支持 Python 序列(如 list)作为输入。例如上面提到的 Scikit-learn、Pandas,他们在进行数据处理之前会默认将输入转化为 Numpy 数组。但是为了更有效地使用这些工具,只知道如何使用是不够的,还需要知道 Numpy 数组是如何工作的。

因此对于每一位从事科学计算、分析、数据处理相关工作的人,都需要学习并了解Numpy。

6. 本课程的学习基础

Numpy 是 Python 开发生态中重要的一环,因此在学习 Numpy 之前,你需要具备一定的 Python 基础。