概述
NumPy是一个功能强大的Python库,主要处理 数值型 数据,特别用于对 多维数组 执行计算。
官方中文文档:
https://www.numpy.org.cn/index.html
菜鸟教程:
https://www.runoob.com/numpy/numpy-tutorial.html
为什么要整理本教程
深度学习框架tensorflow,是基于numpy开发的,所以在学习tensorflow之前,有必要学习numpy基础部分
本系列教程只是介绍numpy的 基础部分,另外,有一些 常用的函数,在上面教程中没有介绍,在本系列中也详细介绍
安装
pip install numpy
介绍
NumPy这个词来源于两个单词: Numerical 和 Python。NumPy提供了大量的 库函数 和 操作,运行速度非常快,主要用于 数组 计算,包含:
一个强大的N维数组对象 ndarray
广播功能函数
整合 C/C++/Fortran 代码的工具
线性代数、傅里叶变换、随机数生成等功能
这类数值计算广泛用于以下任务:
机器学习模型:在编写机器学习算法时,需要对矩阵进行各种数值计算。例如矩阵乘法、换位、加法等。NumPy提供了一个非常好的库,用于简单(在编写代码方面)和快速(在速度方面)计算。NumPy数组用于存储训练数据和机器学习模型的参数。
图像处理 和 计算机图形学:计算机中的图像表示为多维数字数组。NumPy成为同样情况下最自然的选择。实际上,NumPy提供了一些优秀的库函数来快速处理图像。例如,镜像图像、按特定角度旋转图像等。
数学任务:NumPy对于执行各种数学任务非常有用,如数值积分、微分、内插、外推等。因此,当涉及到数学任务时,它形成了一种基于Python的MATLAB的快速替代。
特点
numpy内置了 并行 运算 功能,当系统有 多个核心 时,做某种计算时,numpy会 自动做并行计算。
Numpy底层使用 C语言 编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受Python解释器的限制,效率远高于纯Python代码。
缺点
numpy数组中的 类型必须一致,不像python中的list,可以是任意类型,所以当读取数据集文件时,如果数据集中有字符串,有数字类型,用numpy读取就不方便
用pandas更为强大简单
应用
NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。