NumPy
Python科学计算的基础包
NumPy 2.4.0 发布!
2025-12-20
强大的N维数组
NumPy 的向量化、索引和广播概念快速且通用,是当今数组计算的实际标准。
数值计算工具
NumPy 提供了全面的数学函数、随机数生成器、线性代数例程、傅里叶变换等。
开源
NumPy 在宽松的 BSD 许可证下分发,由充满活力、响应迅速且多元化的 社区GitHub 上公开开发和维护。
互操作性强
NumPy 支持广泛的硬件和计算平台,并能很好地与分布式、GPU 和稀疏数组库配合使用。
高性能
NumPy 的核心是优化良好的 C 代码。享受 Python 的灵活性和编译代码的速度。
易于使用
NumPy 的高级语法使其对任何背景或经验水平的程序员都易于访问和高效。
尝试 NumPy

使用交互式 Shell 在浏览器中尝试 NumPy

"""
To try the examples in the browser:
1. Type code in the input cell and press
   Shift + Enter to execute
2. Or copy paste the code, and click on
   the "Run" button in the toolbar
"""

# The standard way to import NumPy:
import numpy as np

# Create a 2-D array, set every second element in
# some rows and find max per row:

x = np.arange(15, dtype=np.int64).reshape(3, 5)
x[1:, ::2] = -99
x
# array([[  0,   1,   2,   3,   4],
#        [-99,   6, -99,   8, -99],
#        [-99,  11, -99,  13, -99]])

x.max(axis=1)
# array([ 4,  8, 13])

# Generate normally distributed random numbers:
rng = np.random.default_rng()
samples = rng.normal(size=2500)
samples

生态系统

几乎所有在 Python 中工作的科学家都利用 NumPy 的强大功能。

NumPy 将 C 和 Fortran 等语言的计算能力带入 Python,而 Python 是一种更易于学习和使用的语言。有了这种力量,就带来了简洁:NumPy 中的解决方案通常清晰而优雅。

当库为了利用创新硬件、创建专用数组类型或添加 NumPy 提供的功能之外的功能而编写时,NumPy 的 API 是起点。

数组库功能与应用领域
DaskDask分布式数组和高级并行计算,实现大规模分析性能。
CuPyCuPy兼容 NumPy 的 GPU 加速 Python 计算数组库。
JAXJAXNumPy 程序的可组合转换:微分、向量化、即时编译到 GPU/TPU。
xarrayXarray带有标签、索引的多维数组,用于高级分析和可视化。
sparse稀疏兼容 NumPy 的稀疏数组库,可与 Dask 和 SciPy 的稀疏线性代数集成。
PyTorchPyTorch深度学习框架,加速从研究原型到生产部署的路径。
TensorFlowTensorFlow一个端到端的机器学习平台,用于轻松构建和部署 ML 驱动的应用程序。
arrowArrow面向列式内存数据和分析的跨语言开发平台。
xtensorxtensor支持广播和惰性计算的多维数组,用于数值分析。
awkwardAwkward Array使用类似 NumPy 的惯用法处理类似 JSON 的数据。
uarrayuarrayPython 后端系统,将 API 与实现解耦;unumpy 提供 NumPy API。
tensorlytensorly张量学习、代数和后端,无缝使用 NumPy、PyTorch、TensorFlow 或 CuPy。
blosc2Blosc2为内存中、磁盘上或远程压缩数组提供加速计算。
Diagram of Python Libraries. The five catagories are 'Extract, Transform, Load', 'Data Exploration', 'Data Modeling', 'Data Evaluation' and 'Data Presentation'.

NumPy 是丰富的数据科学库生态系统的核心。典型的探索性数据科学工作流程可能如下所示:

对于大量数据,DaskRay 旨在进行扩展。稳定的部署依赖于数据版本控制(DVC)、实验跟踪(MLFlow)和工作流自动化(Airflow, DagsterPrefect)。

Diagram of three overlapping circles. The circles are labeled 'Mathematics', 'Computer Science' and 'Domain Expertise'. In the middle of the diagram, which has the three circles overlapping it, is an area labeled 'Data Science'.

NumPy 是 scikit-learn 和 SciPy 等强大的机器学习库的基础。随着机器学习的发展,建立在 NumPy 之上的库也在不断增加。TensorFlow 的深度学习能力具有广泛的应用——包括语音和图像识别、文本应用、时间序列分析和视频检测。PyTorch 是另一个深度学习库,在计算机视觉和自然语言处理领域的研究人员中很受欢迎。

称为“集成方法”(如分箱、装袋、堆叠和提升)的统计技术是 XGBoost、LightGBM 和 CatBoost 等工具实现的机器学习算法之一——CatBoost 是最快的推理引擎之一。Yellowbrick 和 Eli5 提供机器学习可视化。

A streamplot made in matplotlib
A scatter-plot graph made in ggpy
A box-plot made in plotly
A streamgraph made in altair
A pairplot of two types of graph, a plot-graph and a frequency graph made in seaborn"
A 3D volume rendering made in PyVista.
A multi-dimensionan image made in napari.
A Voronoi diagram made in vispy.

NumPy 是新兴的 Python 可视化生态系统的一个重要组成部分,该生态系统包括 Matplotlib、Seaborn、Plotly、Altair、Bokeh、Holoviz、Vispy、Napari 和 PyVista 等,仅举几例。

NumPy 对大型数组的加速处理使研究人员能够可视化比原生 Python 所能处理的数据集大得多的数据集。

案例研究