Numpy 简介
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.2 数据分析
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基础。