说明
NumPy 教程 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
NumPy 是一个开源项目,旨在通过 Python 启用数值计算。 它创建于 2005 年,以数值库和 Numarray 库的早期工作为基础。 NumPy 将永远是 100% 的开源软件,所有用户均可免费使用,并根据经过修改的 BSD 许可的自由条款发布。NumPy 是在 NumPy 和更广泛的科学 Python 社区的共识下在 GitHub 上公开开发的。
NumPy 将诸如 C 和 Fortran 之类的语言的计算能力引入了 Python,这是一种易于学习和使用的语言。 有了这种强大功能,操作就会变得简单,NumPy 提供的解决方案通常清晰明了。
为什么选择 NumPy? 强大的 n 维数组、 数值计算、通用、高性能、开源。
NumPy 是 Python 中科学计算的基本软件包。它是一个 Python 库,提供多维数组对象,各种派生对象(例如蒙版数组和矩阵)以及各种常规操作,用于对数组进行快速操作,包括数学,逻辑,形状处理,排序,选择,I/O ,离散傅立叶变换,基本线性代数,基本统计运算,随机模拟等等。
NumPy 的前身最早是由 Jim Hugunin 与其它协作者共同开发 Numeric ,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。
矢量化描述了代码中没有任何显式的循环,索引等 - 这些当然是预编译的C代码中“幕后”优化的结果。矢量化代码有许多优点,其中包括:
广播是用于描述操作的隐式逐元素行为的术语。一般来说,在 NumPy 中,所有操作,不仅仅是算术运算,还包括逻辑、位、函数等,都以这种隐式的逐元素方式表现,即它们进行广播。此外,可以是相同形状的多维数组,或者标量和数组,或者甚至是具有不同形状的两个数组,条件是较小的数组可以「扩展」到更大的形状,结果广播明确无误的方式。
NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。
SciPy 是一个开源的 Python 算法库和数学工具包。SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。
Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)。
另外,知名的数据分析库 Pandas 也是基于 NumPy 的底层数据结构,其中的数据结构、数据处理思想和很多数据操作也来源于 NumPy。
使用 NumPy 需要先安装 python 环境并安装相应的代码编辑工具(参见后篇),然后使用 python 的 pip 命令进行安装:
pip install numpy -U
# 国外网络慢,可指定国内源快速下载安装
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
使用时按照惯例对模块取别名 np
,建议也严格遵守此约定:
# 导入 numpy 库, 约定俗成别名为 np
import numpy as np
np.array([1, 2, 3])
更新时间:Dec. 25, 2020, 11:02 p.m. 标签:numpy 简介