当前位置: 首页 > news >正文

NumPy 2.x 完全指南【一】简介

文章目录

  • 1. 概述
  • 2. 发展历史
  • 3. 生态系统
    • 3.1 科学领域
    • 3.2 数组库
    • 3.3 数据科学
    • 3.4 机器学习
    • 3.5 可视化
  • 4. 应用案例
    • 4.1 黑洞的第一张图像
    • 4.2 引力波的检测
    • 4.3 体育分析
    • 4.4 姿态分析
  • 5. 开发语言
  • 6. 开源协议
  • 7. Travis Oliphant

1. 概述

Alt
NumPyNumerical Python 的缩写,是一个用于在 Python 中进行科学计算的基础库,一般读作【兰派】。提供了一个多维数组对象,以及多种数组操作函数,包括数学运算、逻辑运算、形状操作、排序、选择、输入/输出、离散傅里叶变换、基础线性代数、基础统计运算、随机模拟等。

重要特性

  • 数值计算工具:提供了全面的数学函数、随机数生成器、线性代数例程、傅里叶变换等功能。

  • 强大的 N 维数组:快速且多功能,NumPy 的向量化、索引和广播概念已成为数组计算的事实标准。

  • 互操作性:支持广泛的硬件和计算平台,并与分布式、GPU 和稀疏数组库兼容。

  • 高效性能:其核心是经过高度优化的 C 代码,享受 Python 的灵活性,同时获得编译代码的速度。

  • 易于使用:高级语法使其对于任何背景或经验水平的程序员都易于使用并富有生产力。

  • 开源:在宽松的 BSD 许可证下发布,由一个充满活力、响应迅速且多样化的社区在 GitHub 上开发和维护。

NumPy 官网资料地址:

  • 官网网站
  • 官网文档
  • 邮件列表
  • 源代码
  • 贡献指南
  • 错误报告
  • 安全漏洞报告

NumPy 作为一个高效的多维数组科学计算库,广泛应用于人工智能(AI)的各个领域中,提供了基础数据结构、高效计算等能力,几乎贯穿了数据处理、模型训练、算法实现和结果分析的等各个环节,是我们在入门 AI 时必须学习和掌握的一个基础库。

2. 发展历史

1991 年,Python 的第一个版本(0.9.0)正式发布,凭借简单、易读等特点,在教育和科学计算领域开始逐渐流行起来。

1995 年,Jim Hugunin 开始着手开发一个针对数值计算的 Python 库,名字叫 Numeric ,提供一个高效的、多维的数组对象,专门用于处理数值数据,并支持一些基础的数学运算,Numeric 也成为了 NumPy 的前身。

1999 年,Travis Oliphant 和其他几位开发者在 Multipack 库的基础上,开始构建一个面向科学计算和工程领域的工具包,并命名为 SciPy。旨在提供一个与 MATLAB 相似的工具集,提供丰富的数学算法和专门的科学计算功能,使用 Numeric 作为底层的数组处理库。

20018 月,SciPy 1.0 版本正式发布。

由于当时的 Numeric 库在处理更大规模的数值数据时存在性能瓶颈,还不能完全满足一些高性能计算需求,而且大佬们希望 Numeric 可以进入 Python 标准库。于是,另一组开发者开始了一个新的项目,名为 NumArray,目标是弥补 Numeric 在处理大型数组时的不足,并优化内存管理和计算性能,并大幅改善了代码质量。

但是由于 NumArray 对于小型矩阵的操作较慢,并且其 API 的易用性并没有 Numeric 好,所以 SciPy 在迁移到 NumArray 时遇到了很大的困难。这也导致社区出现了分化问题,一部分人认为 NumArrayNumeric 的下一个版本,所以只开发 NumArray ,而另外一部分认为 SciPy 还是用的 Numeric ,所以只开发 Numeric

2005 年,在 Travis Oliphant 的主导下,社区决定将 NumArrayNumeric 进行合并,以便发挥各自的优点,并在此基础上推出一个独立的新库,命名为 NumPyNumerical Python)。

2006 年,NumPy 1.0 版本正式发布,并迅速成为 Python 生态系统中数据分析、机器学习、科学计算领域的最重要的基础库之一。

2011 年,NumPy 1.5.0 版本引入了对 Python 3 的支持。

20246 月,Numpy 2.0.0 版本正式发布,废弃了部分不常用的接口。

目前最新的版本为 2025-1-18 发布的 2.2.2 ,需要注意的是,目前其他 Python 库可能大多都还是使用的 1.25.x1.26.x 版本,需要注意它们的版本要求,尽量避免兼容性问题。
在这里插入图片描述

3. 生态系统

NumPy 的基础上发展出了一些列的扩展库、工具和应用框架,覆盖了从基础数学运算到高级机器学习、可视化的广泛领域。

🔍 接下来,我们看下官网中关于生态系统和应用案例的相关介绍。

3.1 科学领域

在科学领域中,几乎所有使用 Python 的科学家都依赖 NumPy 的强大功能,在量子计算、统计计算、天文学、数学分析、建筑与工程等等领域中的 Python 库,都用到了 NumPy
在这里插入图片描述

3.2 数组库

在很多深度学习框架、数组库、机器学习平台中也用到了 NumPy
在这里插入图片描述

3.3 数据科学

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

  • 数据提取、转换和加载(ETL):PandasIntakePyJanitor
  • 探索性分析:JupyterSeabornMatplotlibAltair
  • 建模与评估:scikit-learnstatsmodelsPyMC3spaCy
  • 仪表盘报告:DashPanelVoila

在这里插入图片描述

对于大规模数据,DaskRay 旨在实现扩展。稳定的部署依赖于数据版本控制(DVC)、实验跟踪(MLFlow)和工作流自动化(AirflowDagsterPrefect)。
在这里插入图片描述

3.4 机器学习

scikit-learnSciPy 等强大机器学习库都使用 NumPy 作为基础,随着机器学习的发展,基于 NumPy 构建的库也在不断增多,比如 TensorFlowPyTorch ,它们在语音和图像识别、基于文本的应用、时间序列分析、视频检测、计算机视觉、自然语言处理等领域中非常流行。

集成方法(如分箱、袋装、堆叠、提升)是一类通过结合多个模型来提高预测性能的技术,其中 XGBoostLightGBMCatBoost 等基于提升方法的高效机器学习工具。可视化机器学习模型性能的工具库 Yellowbrick ,模型解释的工具库 Eli5 等,也都集成了 NumPy

3.5 可视化

NumPyPython 可视化生态系统中一个重要的组成部分,该生态系统包括 MatplotlibSeabornPlotlyAltairBokehHolovizVispyNapariPyVista 等库。NumPy 加速了大规模数组的处理,使研究人员能够可视化远大于原生 Python 所能处理的数据集。
在这里插入图片描述

4. 应用案例

4.1 黑洞的第一张图像

黑洞是一个橙色圆圈,背景是黑色的,NumPy 与依赖于 NumPySciPyMatplotlib 等库一起,使得事件视界望远镜能够拍摄到黑洞的首张图像。
在这里插入图片描述

4.2 引力波的检测

两个球体彼此绕行,它们在周围引起重力的变化。1916 年阿尔伯特·爱因斯坦预言了引力波,100 年后 LIGO 科学家使用 NumPy 确认了引力波的存在。
在这里插入图片描述

4.3 体育分析

绿色场地上的板球。板球分析通过统计建模和预测分析改善球员和团队的表现,正在改变比赛,NumPy 支持了这些分析的许多部分。
在这里插入图片描述

4.4 姿态分析

DeepLabCut 使用 NumPy 加速科学研究,涉及观察动物行为,以便更好地理解跨物种和时间尺度的运动控制。
在这里插入图片描述

5. 开发语言

NumPy 的开发语言主要包括:

  • Python:基于 Python 提供高层且易用的 API 来处理数组和矩阵等数据结构。
  • C:使用 C 语言实现底层,提供高效的计算性能。

在这里插入图片描述

6. 开源协议

NumPy 使用 BSD 3-Clause License 开源许可协议,是一种比较宽松的灵活、宽松的许可证,使开发者能够自由地使用、修改和分发代码,同时保护原作者免于因使用该代码引发的法律责任。

LICENSE 文件:

Copyright (c) 2005-2024, NumPy Developers.
All rights reserved.Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:* Redistributions of source code must retain the above copyrightnotice, this list of conditions and the following disclaimer.* Redistributions in binary form must reproduce the abovecopyright notice, this list of conditions and the followingdisclaimer in the documentation and/or other materials providedwith the distribution.* Neither the name of the NumPy Developers nor the names of anycontributors may be used to endorse or promote products derivedfrom this software without specific prior written permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

7. Travis Oliphant

Travis Oliphant(特拉维斯·奥利芬特)于 1969412 日出生于美国的俄勒冈州,拥有梅奥诊所的博士学位及杨百翰大学的数学与电气工程学士和硕士学位。

在科学计算和数据分析领域做出了很多广为人知的贡献,是 NumPySciPy 库的主要创始人之一,同时也是科学计算平台 Anaconda 的创始人。
在这里插入图片描述
大佬还出版过一本《Guide to NumPy》:
在这里插入图片描述

相关文章:

  • Linux网络编程day6 下午去健身
  • JAVA中常见队列详解-非线程安全
  • MCP系列(一)什么是MCP?
  • DMA技术原理
  • 软件系统的可观测性 Observability
  • 鸿蒙开发中对want的深入理解,want和uiability的关系-深度理解want的意思有利开发-优雅草卓伊凡
  • 聊一聊Qwen3思考模式实现以及背后原理探讨
  • 【Ollama】docker离线部署Ollama+deepseek
  • 深度学习赋能:正面吊车载箱号识别系统的核心技术
  • vue+vite难点和优化,及seo优化
  • 亚远景-ASPICE vs ISO 21434:汽车软件开发标准的深度对比
  • 可视化图解算法34:二叉搜索树的最近公共祖先
  • Docker 容器化部署深度研究与发展趋势
  • mysql中执行select命令的顺序
  • upload-labs靶场通关详解:第一关
  • 基于OpenTelemetry的分布式链路追踪Trace‌实现(PHP篇)
  • FlyEnv:优雅直观的跨平台开发环境管理工具
  • vue3+vite项目引入tailwindcss
  • Spark处理过程-转换算子和行动算子
  • 通过vllm部署qwen3大模型以及基于 vLLM 的 OpenAI 兼容 API 接口调用方法总结
  • “春申阡陌”漆画展:将传统漆艺融入现代创作
  • 巴基斯坦对印度发起网络攻击,致其约70%电网瘫痪
  • 上汽享道出行完成13亿元C轮融资,已启动港股IPO计划
  • 独家丨刘家琨获普利兹克奖感言:守护原始的感悟力
  • 首批证券公司科创债来了!拟发行规模超160亿元
  • Meta正为AI眼镜开发人脸识别功能