NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。
NumPy包的核心是 ndarray 对象。它封装了python原生的同数据类型的 n 维数组,为了保证其性能优良,其中有许多操作都是代码在本地进行编译后执行的。
NumPy数组 和 原生Python Array(数组)之间有几个重要的区别:
NumPy 数组在创建时具有固定的大小,与Python的原生数组对象不同,更改ndarray的大小将创建一个新数组并删除原来的数组。NumPy 数组元素需具有相同的数据类型,因此在内存中的大小相同。NumPy 数组有助于对大量数据进行高级数学和其他类型的操作。通常,这些操作的执行效率更高,比使用Python原生数组的代码更少。越来越多的基于Python的科学和数学软件包使用NumPy数组,但它们在处理之前会会将输入的数组转换为NumPy的数组。
在开学习 NumPy 教程之前,我们需要具备基本的 Python 基础,本网站推荐使用Python3.x版本,如果你对 Python还不了解,可以阅读我们的Python教程
在 Python 中,我们有满足数组功能的列表,但是处理起来很慢。NumPy 旨在提供一个比传统 Python 列表快 50 倍的数组对象。NumPy 中的数组对象称为 ndarray,它提供了许多支持函数,使得利用 ndarray 非常容易。数组在数据科学中非常常用,因为速度和资源非常重要。数据科学:计算机科学的一个分支,研究如何存储、使用和分析数据以从中获取信息。
与列表不同,NumPy 数组存储在内存中的一个连续位置,因此进程可以非常有效地访问和操纵它们。
这种行为在计算机科学中称为引用的局部性。
这是 NumPy 比列表更快的主要原因。它还经过了优化,可与最新的 CPU 体系结构一同使用。
NumPy 通常与 SciPy一起使用,这种组合广泛用于代替 MatLab,有助于我们通过 Python 学习数据科学或者机器学习。SciPy 是一个开源的 Python 算法库和数学工具包。SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包。
NumPy 官网:http://www.numpy.orgNumPy 源代码:https://github.com/numpy/numpySciPy 官网:: https://www.scipy.orgSciPy 源代码:: https://github.com/scipy/scipyMatplotlib 源代码:: https://matplotlib.orgMatplotlib 源代码:: https://github.com/matplotlib/matplotlib
# 1、安装包 $ pip install numpy # 2、进入python的交互式界面 $ python -i # 3、使用Numpy >>> from numpy import * >>> eye(4) # 4、输出结果 array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 1.]])