"""
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 是起点。
| 数组库 | 功能与应用领域 | |
![]() | Dask | 分布式数组和高级并行计算,实现大规模分析性能。 |
![]() | CuPy | 兼容 NumPy 的 GPU 加速 Python 计算数组库。 |
![]() | JAX | NumPy 程序的可组合转换:微分、向量化、即时编译到 GPU/TPU。 |
![]() | Xarray | 带有标签、索引的多维数组,用于高级分析和可视化。 |
![]() | 稀疏 | 兼容 NumPy 的稀疏数组库,可与 Dask 和 SciPy 的稀疏线性代数集成。 |
| PyTorch | 深度学习框架,加速从研究原型到生产部署的路径。 | |
| TensorFlow | 一个端到端的机器学习平台,用于轻松构建和部署 ML 驱动的应用程序。 | |
![]() | Arrow | 面向列式内存数据和分析的跨语言开发平台。 |
![]() | xtensor | 支持广播和惰性计算的多维数组,用于数值分析。 |
| Awkward Array | 使用类似 NumPy 的惯用法处理类似 JSON 的数据。 | |
![]() | uarray | Python 后端系统,将 API 与实现解耦;unumpy 提供 NumPy API。 |
![]() | tensorly | 张量学习、代数和后端,无缝使用 NumPy、PyTorch、TensorFlow 或 CuPy。 |
| Blosc2 | 为内存中、磁盘上或远程压缩数组提供加速计算。 |
NumPy 是丰富的数据科学库生态系统的核心。典型的探索性数据科学工作流程可能如下所示:
NumPy 是 scikit-learn 和 SciPy 等强大的机器学习库的基础。随着机器学习的发展,建立在 NumPy 之上的库也在不断增加。TensorFlow 的深度学习能力具有广泛的应用——包括语音和图像识别、文本应用、时间序列分析和视频检测。PyTorch 是另一个深度学习库,在计算机视觉和自然语言处理领域的研究人员中很受欢迎。
称为“集成方法”(如分箱、装袋、堆叠和提升)的统计技术是 XGBoost、LightGBM 和 CatBoost 等工具实现的机器学习算法之一——CatBoost 是最快的推理引擎之一。Yellowbrick 和 Eli5 提供机器学习可视化。