"""
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,这种语言更容易学习和使用。这种能力带来了简单性:NumPy 中的解决方案通常清晰而优雅。
NumPy 的 API 是编写库以利用创新硬件、创建专用数组类型或添加 NumPy 提供之外的功能的起点。
数组库 | 能力和应用领域 | |
达斯克 | 用于分析的分布式阵列和高级并行性,可实现大规模性能。 | |
吡啶亚铜 | 与 NumPy 兼容的数组库,用于使用 Python 进行 GPU 加速计算。 | |
贾克斯 | NumPy 程序的可组合转换:微分、矢量化、即时编译到 GPU/TPU。 | |
X阵列 | 带标签、索引的多维数组,用于高级分析和可视化。 | |
疏 | 与 NumPy 兼容的稀疏数组库,与 Dask 和 SciPy 的稀疏线性代数集成。 | |
火炬 | 深度学习框架可加速从研究原型设计到生产部署的过程。 | |
TensorFlow | 用于机器学习的端到端平台,可轻松构建和部署 ML 支持的应用程序。 | |
MXNet | 深度学习框架适合灵活的研究原型设计和生产。 | |
箭 | 用于柱状内存数据和分析的跨语言开发平台。 | |
x张量 | 具有广播和惰性计算的多维数组,用于数值分析。 | |
尴尬的数组 | 使用类似 NumPy 的习惯用法来操作类似 JSON 的数据。 | |
乌阵列 | 将API与实现解耦的Python后端系统; unumpy 提供了 NumPy API。 | |
张量地 | 张量学习、代数和后端可无缝使用 NumPy、MXNet、PyTorch、TensorFlow 或 CuPy。 |
NumPy 是丰富的数据科学图书馆生态系统的核心。典型的探索性数据科学工作流程可能如下所示:
NumPy 构成了scikit-learn和SciPy等强大机器学习库的基础。随着机器学习的增长,基于 NumPy 构建的库列表也在不断增长。TensorFlow 的深度学习功能具有广泛的应用,其中包括语音和图像识别、基于文本的应用、时间序列分析和视频检测。PyTorch是另一个深度学习库,在计算机视觉和自然语言处理领域的研究人员中很受欢迎。MXNet是另一个 AI 包,为深度学习提供蓝图和模板。
NumPy 是新兴Python 可视化领域的重要组件,其中包括Matplotlib、Seaborn、Plotly、Altair、Bokeh、Holoviz、Vispy、Napari和PyVista等。
NumPy 对大型数组的加速处理使研究人员能够可视化远远大于本机 Python 处理能力的数据集。