NumPy 是一款功能强大的 Python 数据处理库,它为 N 维数组操作、广播功能、集成化的 C/C++ 和 Fortran 代码、高效的线性代数、傅里叶变换和随机数生成等提供了全面的支持。NumPy 的强大多维数组矢量化、快速且通用的数据库索引和广播机制,使其成为了当今数组计算的事实标准。它不仅提供了全面的数学运算工具,还包括随机数生成器、线性代数方法、傅里叶变换等。NumPy 支持广泛的硬件配置和计算平台,并能与分布式系统、GPU 和稀疏数组库无缝集成。NumPy 的核心是经过优化的 C 语言编码,它依赖于编译后的代码,同时拥有 Python 的灵活性。NumPy 的高级语法易于使用,能够帮助来自任何背景或经验水平的程序员提升生产力。NumPy 是在开源的 BSD 许可下发布的,由一个活跃、响应迅速且多元化的社区在 GitHub 上进行开发和维护。NumPy 位于丰富的计算机科学图书馆生态系统的核心。
NumPy 的典型应用场景可能包括以下内容:
获取、转换和加载:Pandas, Intake, PyJanitor
探索性分析:Jupyter, Seaborn, Matplotlib, Altair
模型和评估:scikit-learn, statsmodels, PyMC3, spaCy
仪表板中的报告:Dash, Panel, Voila
对于高信息量,Dask 和 Ray 提供了可扩展性。稳定的部署依赖于数据版本控制(DVC)、实验跟踪(MLFlow)和工作流引擎自动化技术(Airflow 和 Prefect)。
NumPy 的软件亮点包括:
分布式数组和高性能并行分析功能,可以实现大规模特性。
兼容 NumPy 的数组库,用于使用 Python 进行 GPU 加速计算。
NumPy 程序流程的可组合变换:差异、矢量化、即时编译到 GPU/TPU。
带标签的多维数组,用于高级分析和可视化。
兼容 NumPy 的稀疏数组库,该库与 Dask 和 SciPy 的稀疏线性代数集成。
深度神经网络架构可加速从科学研究原型到生产部署的过程。
深度学习的端到端平台,可轻松搭建和部署基于 ML 的应用程序。
深度神经网络架构适用于灵活的科学原型和生产。
用于列式运行内存数据和分析的跨语言软件开发平台。
具有广播和可塑性计算的多维数组,用于数值计算方法。
开发用于数组计算的库,重新建立 NumPy 的基本要素。
使 API 与实现挂钩的 Python 后端系统;unumpy 提供了一个 NumPy API。
Tensor 学习、代数和后端开发可无缝拼接应用 NumPy, MXNet, PyTorch, TensorFlow 或 CuPy。
NumPy 的软件优点包括:
由 XGBoost, LightGBM 和 CatBoost 等工具完成的 ML 优化算法。
统计技术性 Yellowbrick 和 Eli5 提供深度学习可视化。
NumPy 是快速发展的 Python 可视化行业的关键组成部分,其中包括 Matplotlib, Seaborn, Plotly, Altair, Bokeh, Holoviz, Vispy 和 Napari 等。
NumPy 对大型数组的加速处理使研究人员能够可视化远远超过该设备 Python 能够处理的数据。
如何使用 NumPy:
安装 NumPy:首先确保您的环境中安装了 NumPy。您可以使用 pip 进行安装:
pip install numpy
导入 NumPy:在您的 Python 脚本中导入 NumPy 库:
import numpy as np
创建数组:使用 NumPy 创建多维数组:
array = np.array([[1, 2, 3], [4, 5, 6]])
数组操作:NumPy 提供了丰富的数组操作功能,例如索引、切片、变形等:
# 获取数组中的第一个元素
first_element = array[0, 0]
# 获取第一行
first_row = array[0, :]
# 获取第一列
first_column = array[:, 0]
数学运算:NumPy 支持大量的数学运算,包括加法、减法、乘法、除法等:
# 加法
result = np.add(array, 5)
# 乘法
result = np.multiply(array, 2)
广播机制:NumPy 的广播机制允许对形状不匹配的数组进行运算:
# 广播一个标量到数组
result = np.add(array, 5)
线性代数:NumPy 提供了线性代数运算,如矩阵乘法、求解线性方程组等:
# 矩阵乘法
result = np.dot(array, array.T)
傅里叶变换:NumPy 支持傅里叶变换,用于信号处理等领域:
# 快速傅里叶变换
result = np.fft.fft(array)
通过以上步骤,您可以使用 NumPy 进行高效的数据处理和数值计算。