15 年!NumPy 论文终出炉,还登上了 Nature

Numpy团队发表在Nature的Numpy论文 这是最权威的Numpy学习资源,它是Numpy开发团队发表在Nature上的论文,详细介绍了Numpy的设计思想和底层原理。 立即下载

转自 | 机器之心

编辑 | 魔王、杜伟、小舟

NumPy 团队撰写了一篇综述文章,介绍 NumPy 的发展过程、主要特性和数组编程等。这篇文章现已发表在 Nature 上。

NumPy 是什么?它是大名鼎鼎的使用 Python 进行科学计算的基础软件包,是 Python 生态系统中数据分析、机器学习、科学计算的主力军,极大简化了向量与矩阵的操作处理。除了计算外,它还包括了:

  • 功能强大的 N 维数组对象。

  • 精密广播功能函数。

  • 集成 C/C++ 和 Fortran 代码的工具。

  • 强大的线性代数、傅立叶变换和随机数功能

今日,NumPy 核心开发团队的论文终于在 Nature 上发表,详细介绍了使用 NumPy 的数组编程(Array programming)。这篇综述论文的发表距离 NumPy 诞生已经过去了 15 年。

论文地址:https://www.nature.com/articles/s41586-020-2649-2

NumPy 官方团队在 Twitter 上简要概括了这篇论文的核心内容:

NumPy 为数组编程提供了简明易懂、表达力强的高级 API,同时还考虑了维持快速运算的底层机制。

NumPy 提供的数组编程基础和生态系统中的大量工具结合,形成了适合探索性数据分析的完美交互环境。NumPy 还包括增强与 PyTorch、Dask 和 JAX 等外部库互操作性的协议。

基于这些特性,NumPy 为张量计算提供了标准的 API,成为 Python 中不同数组技术之间的核心协调机制。

接下来,我们来看这篇 NumPy 综述论文的详细内容。

论文摘要

数组编程为访问、操纵和计算向量、矩阵和高维数组中的数据提供了功能强大、紧凑且表达力强的语法。NumPy 是 Python 语言的主要数组编程库,它在物理、化学、天文学、地球科学、生物学、心理学、材料科学、工程学、金融和经济学等领域的研究分析中都起着至关重要的作用。例如,在天文学中,NumPy 是发现引力波和黑洞首次成像的软件栈中的重要部分。

这篇论文回顾了一些基本的数组概念,以及它们如何形成一种简单而强大的编程范式,使其能够用于组织、探索和分析科学数据。NumPy 是构建科学 Python 生态系统的基础。它的应用十分普遍,一些面向特殊需求受众的项目已经开发出自己的类 NumPy 接口和数组对象。

由于其在 Python 生态系统中的核心地位,NumPy 越来越多地充当数组计算库之间的互操作层,并且和其 API 一起提供了灵活的框架,以支持未来十年的科学和工业分析。

NumPy 的演变史

在 NumPy 之前,已经出现了两个 Python 数组包。Numeric 包开发于 20 世纪 90 年代中期,它提供了 Python 中的数组对象和 array-aware 函数。Numeric 是用 C 语言写的,并链接到线性代数的标准快速实现。其最早的应用之一是美国劳伦斯利弗莫尔国家实验室的惯性约束核聚变研究。

为了处理来自哈勃太空望远镜的大型天文图像,Numeric 被重实现为 Numarray,它添加了对结构化数组、灵活 indexing、内存映射、字节序变体、更高效的内存使用以及更好的类型转换规则的支持。

尽管 Numarray 与 Numeric 高度兼容,但这两个包之间的差异足以将社区开发者分为两类。而 2005 年,NumPy 的出现完美地统一了这两个包,它将 Numarray 的功能和 Numeric 的 small-array 性能及其丰富的 C API 结合起来。

如今,15 年过去了,NumPy 几乎支持所有进行科学和数值计算的 Python 库(包括 SciPy、Matplotlib、pandas、scikit-learn 和 scikit-image)。NumPy 是一个社区开发的开源库,它提供了多维 Python 数组对象以及对其进行操作的 array-aware 函数。由于其固有的简洁性,事实上 NumPy 数组已经成为 Python 中数组数据的交换格式。

NumPy 使用 CPU 对内存内(in-memory)数组进行操作。为了利用现代的专用存储和硬件,最近已经扩展出一系列 Python 数组包。与 Numarray–Numeric 之间存在较大差异的情况不同,现在的这些新库很难在社区开发者中引起分歧,因为它们都是建立在 NumPy 之上的。但是,为了使社区能够使用新的探索性技术,NumPy 正在过渡为核心协调机制,该机制规划了良好定义的数组编程 API,并在合适的时候将其分发给专门的数组实现。

NumPy 数组

NumPy 数组是一种能够高效存储和访问多维数组的数据结构,支持广泛类型的科学计算。NumPy 数组包括指针和用于解释存储数据的元数据,即 data type(数据类型)、shape(形状)和 strides(步幅),参见下图 1a。

图 1:NumPy 数组包括多种基础数组概念。

数据类型描述了数组中存储元素的本质。一个数组只有一个数据类型,数组中的每个元素在内存中占用的字节数是一样的。数据类型包括实数、复数、字符串、timestamp 和指针等。

数组的形状决定了每个轴上的元素数量,轴的数量即为数组的维数。例如,数字向量可存储为形状为 N 的一维数组,而彩色视频是形状为 (T, M, N, 3) 的四维数组。

步幅是解释计算机内存的必要组件,它可以线性地存储元素。步幅描述了在内存中逐行逐列移动时所需的字节数。例如,形状为 (4, 3) 的二维浮点数数组,它其中的每个元素均在内存中占用 8 个字节数。要想在连续列之间移动,我们需要在内存中前进 8 个字节数,要想到达下一行,则需要前进 3 × 8 = 24 个字节数。因此该数组的步幅为 (24, 8)。NumPy 可以用 C 或 Fortran 的内存顺序存储数组,沿着行或列遍历。这使得使用这些语言写的外部库可以直接访问内存中的 NumPy 数组数据。

用户使用「indexing」(访问子数组或单个元素)、「operators」(各种运算符)和「array-aware function」与 NumPy 数组进行交互。它们为 NumPy 数组编程提供了简明易懂、表达力强的高级 API,同时还考虑了维持快速运算的底层机制。

对数组执行 indexing 将返回单个元素、子数组或满足特定条件的元素(参见上图 1b)。数组甚至还可以用其他数组进行 indexing(参加图 1c)。返回子数组的 indexing 还可以返回原始数组的「view」,以便在两个数组之间共享数据。这就为内存有限的情况下基于数组数据子集进行运算提供了一种强大的方式。

为了补充数组语法,NumPy 还包括对数组执行向量化计算的函数,包括 arithmetic、statistics 和 trigonometry(参见图 1d)。向量化计算基于整个数组运行而不是其中的单个元素,这对于数组编程而言是必要的。这意味着,在 C 等语言中需要几十行才能表达的运算在这里只需一个清晰的 Python 表达式即可实现。这就带来了简洁的代码,并使得用户不必关注分析细节,同时 NumPy 以接近最优的方式循环遍历数组元素。

对两个形状相同的数组执行向量化计算(如加法)时,接下来会发生什么是很明确的。而「broadcasting」机制允许 NumPy 处理维度不同的数组之间的运算,例如向数组添加一个标量值。broadcasting 还能泛化至更复杂的示例,如缩放数组的每一列或生成坐标网格。在 broadcasting 中,单个或两个数组可以重叠(没有从内存中复制任何数据),使得 operands 的形状匹配(参见图 1d)。

其他 array-aware function(如加、求平均值、求最大值)都是执行逐元素的「reduction」,累积单个数组的一个、多个或所有轴上的结果。例如,将一个 n 维数组与 d 个轴进行累加,得到维度为 n − d 的数组(参见图 1f)。

NumPy 还包含可以创建、reshaping、concatenating 和 padding 数组,执行数据排序和计数,读取和写入文件的 array-aware function。这为生成伪随机数提供了大量支持,它还可以使用 OpenBLAS 或 Intel MKL 等后端执行加速线性代数。

总之,内存内的数组表示、紧密贴近数学的语法和多种 array-aware function 共同构成了生产力强、表达力强的数组编程语言。

科学 Python 生态系统

Python 是一个开源、通用的解释型编程语言,非常适合数据清洗、与 web 资源交互和解析文本之类的标准编程任务。添加快速数组操作和线性代数能够让科学家在一种编程语言中完成所有的工作。

尽管 NumPy 不是 Python 标准库的一部分,但它也从与 Python 开发者的良好关系中受益。在过去这些年中,Python 语言已经加入了一些新的功能和特殊的语法,以便 NumPy 具备更加简洁和易于阅读的数组表示法。但是,由于 NumPy 不是 Python 标准库的一部分,所以它能够规定自己的发布策略和开发模式。

从发展史、开发和应用的角度来看,SciPy 和 Matplotlib 与 NumPy 联系紧密。SciPy 为科学计算提供了基础算法,包括数学、科学和工程程序。Matplotlib 生成可发表品质的图表和可视化文件。NumPy、SciPy 和 Matplotlib 的结合,再加上 IPython、Jupyter 这类高级交互环境,为 Python 中的数组编程提供了坚实的基础。

如图 2 所示,科学 Python 生态系统建立在上述基础之上,它提供了多种广泛应用的专有技术库,而这又是众多领域特定项目的基础。NumPy 是这一 array-aware 库生态系统的基础,它设置了文档标准、提供了数组测试基础结构,并增加了对 Fortran 等编译器的构建支持。

图 2:NumPy 是科学 Python 生态系统的基础。

很多研究团队设计出大型、复杂的科学库,这些库为 Python 生态系统增添了特定于具体应用的功能。例如,由事件视界望远镜(Event Horizon Telescope, EHT)合作项目开发的 eht-imaging 库依赖科学 Python 生态系统的很多低级组件。而 EHT 合作项目利用该库捕获了黑洞的首张图像。

在 eht-imaging 库中,NumPy 数组在流程链的每一步存储和操纵数值数据。

基于数组编程创建的交互式环境及其周边的工具生态系统(IPython 或 Jupyter 内部)完美适用于探索性数据分析。用户可以流畅地检查、操纵和可视化他们的数据,并快速迭代以改善编程语句。然后,将这些语句拼接入命令式或函数式程序,或包含计算和叙述的 notebook。

超出探索性研究的科学计算通常在文本编辑器或 Spyder 等集成开发环境(IDE)中完成。这一丰富和高产的环境使 Python 在科学研究界流行开来。

为了给探索性研究和快速原型提供补充支持,NumPy 形成了使用经过时间检验的软件工程实践来提升协作、减少误差的文化。这种文化不仅获得了项目领导者的采纳,而且还被传授给初学者。NumPy 团队很早就采用分布式版本控制和代码审查机制来改善代码协同,并使用持续测试对 NumPy 的每个提议更改运行大量自动化测试。

这种使用最佳实践来制作可信赖科学软件的文化已经被基于 NumPy 构建的生态系统所采用。例如,在近期英国皇家天文学会授予 Astropy 的一项奖项中表示:「Astropy 项目为数百名初级科学家提供了专业水平的软件开发实践,包括版本控制使用、单元测试、代码审查和问题追踪程序等。这对于现代研究人员而言是一项重要的技能组合,但物理或天文学专业的正规大学教育却常常忽略这一点。」社区成员通过课程和研讨会来弥补正规教育中的这一缺失。

近来数据科学、机器学习和人工智能的快速发展进一步大幅提升了 Python 的科学使用。Python 的重要应用,如 eht-imaging 库,现已存在于自然和社会科学的几乎每个学科之中。这些工具已经成为很多领域主要的软件环境。大学课程、新手培训营和暑期班通常教授 NumPy 及其生态系统,它们也成为世界各地社区会议和研讨会的焦点。NumPy 和它的 API 已经无处不在了。

数组激增和互操作性

NumPy 在 CPU 上提供了内存内、多维和均匀键入(即单一指向和跨步的)的数组。NumPy 可以在嵌入式设备和世界上最大的超级计算机等机器上运行,其性能接近编译语言。在大多数情况下,NumPy 解决了绝大部分的数组计算用例。

但是现在,科学数据集通常超出单个机器的存储容量,并且可以在多个机器或云上存储。此外,近来深度学习和人工智能应用的加速需求已经促生了专用加速器硬件,包括 GPU、TPU 和 FPGA。目前,由于 NumPy 具有的内存内数据模型,它无法直接使用这类存储和专用硬件。

然而,GPU、TPU 和 FPGA 的分布式数据和并行执行能够很好地映射到数组编程范式,所以可用的现代硬件架构与利用它们的计算能力所必需的工具之间存在着差距。

社区为弥补这一差距做出的努力使得新的数组实现激增。例如,每个深度学习框架都创建了自己的数组。PyTorch、TensorFlow、Apache MXNet 和 JAX 数组都有能力以分布式方式在 CPU 和 GPU 上运行,其中使用惰性计算(lazy evaluation)实现额外性能优化。SciPy 和 PyData/Sparse 都提供有稀疏数组,这些数组通常包含很少的非零值,并只在内存中存储以提升效率。

此外,还有一些项目在 NumPy 数组上构建作为数据容器,并扩展相应功能。Dask 通过这种方式使分布式数组成为可能,而标记数组是通过 xarray 实现的。

这类库常常模仿 NumPy API,以降低初学者准入门槛,并为更广泛的社区提供稳定的数组编程接口。这反过来也会阻止一些破坏性分立(disruptive schism),如 Numeric 和 Numarray 之间的差异。

但是探索使用数组的新方法从本质上讲是试验性的,事实上,Theano 和 Caffe 等一些有前途的库已经停止了开发。每当用户决定尝试一项新技术时,他们必须更改 import 语句,并确保新库能够实现他们当前使用的所有 NumPy API 部件。

在理想状态下,用户可以通过 NumPy 函数或语义在专用数组上进行操作,这样他们可以编写一次代码,然后从 NumPy 数组、GPU 数组、分布式数组以及其他数组之间的切换中获益。为了支持外部数组对象之间的数组操作,NumPy 增加了一项充当核心协调机制的功能,并提供指定的 API,具体如上图 2 所示。

为了促进这种互操作性,NumPy 提供了允许专用数组传递给 NumPy 函数的「协议」,具体如下图 3 所示。反过来,NumPy 根据需要将操作分派给原始库。超过 400 个最流行的 NumPy 函数得到了支持。该协议通过 Dask、CuPy、xarray 和 PyData/Sparse 等广泛使用的库来实现。

得益于这些进展,用户现在可以使用 Dask 将自己的计算从单个机器扩展至多个系统。该协议允许用户通过 Dask 数组中嵌入的 CuPy 数组等,在分布式多 GPU 系统上大规模地重新部署 NumPy 代码。

使用 NumPy 的高级 API,用户可以在具有数百万个核的多系统上利用高度并行化的代码执行,并且需要的代码更改最少。

如下图 3 所示,NumPy 的 API 和数组协议向生态系统提供了新的数组:

现在,这些数组协议是 NumPy 的主要特征,它们的重要性预计也会越来越大。NumPy 开发者(很多也是这篇文章的作者)迭代地改善和增加协议设计,以改进实用性和简化应用方式。

论文最后对 NumPy 的现状和未来进行了总结和展望:

在未来十年中,NumPy 开发者将面临多项挑战。新设备将出现,现有的专用硬件将面临摩尔定律的收益递减,数据科学从业者将越来越多,类型也更加广泛。而他们中的大部分将使用 NumPy。

随着光片显微镜和大型综合巡天望远镜(LSST)等设备和仪器的采用,科学数据的规模将持续扩大。新一代语言、解释器和编译器,如 Rust、Julia 和 LLVM,将创造出新的概念和数据结构。

《UE4游戏开发》之 《音效系统的实现》 音效系统需要负责管理什么事情: 1.1 确定声音控制的分类:如背景音乐、技能音效、界面音效、角色配音等,不同游戏对声音有不同的分类 1.2 控制每个分类的声音的开启与关闭,以及调节每个分类声音的大小 解决如何分类: 2.1 首先需要知道ue4为声音分类提供了什么:SoundClass通常需要一个根分类【SC_RPG_Master】,便于总体控制音效,以及指定引擎默认启动的音效 打开SoundClass资产【SC_RPG_Master】,对根控制的设置,将逐级传递并按比例进行设置,以此达到控制一类声音的目的. 阅读详情

相关推荐

竞赛无人机模块化开发实战:2023 TI电赛G题空地协同消防系统(飞控与视觉融合篇)

本文以2023年TI电赛G题为例,详细阐述了采用模块化开发思维构建空地协同智能消防系统的实战方法。文章重点拆解了无人机飞控二次开发、视觉识别与融合控制等核心模块,提供了硬件选型、代码实现与系统联调的完整指南,旨在帮助参赛者通过“搭积木”式编程高效完成复杂系统集成。

js777的博客 452

论文研读番外篇(1)——pytorch、numpy的使用整理

对python的torch和numpy进行一些整理

1633

SPICE模型入门到精通

文章目录前言一、SPICE是什么?二、1. 前言 由于笔者的毕业设计与功率半导体器件建模相关,需要用到SPICE软件来建模,在这记录一下从零开始的SPICE学习历程~ 一、SPICE是什么? 电子产品的设计一般先从功能框图开始,然后细化到原理图,还要经过很调试验证过程,最终才能完成。调试和验证的过程复杂而繁琐,在设计集成电路时更是如此,在制造之前急需验证集成电路的功能。 根据电路理论,人们可以建立起节点方程和回路方程,通过解这些方程组成的方程组就可以得到结果,也就是说可以通过计算来获得电路的工作情况。但

qq_42031914的博客 7万+

15年!NumPy论文终出炉,还登上了Nature

机器之心报道编辑:魔王、杜伟、小舟NumPy 团队撰写了一篇综述文章,介绍 NumPy 的发展过程、主要特性和数组编程等。这篇文章现已发表在 Nature 上。NumPy 是什么?它是大...

zandaoguang的博客 381

LaTeX公式转Word竟这么简单?Python三行代码实现学术论文格式无忧

本文介绍如何利用Python的latex2word库,仅需三行代码即可将LaTeX数学公式精准转换为Word原生Office Math对象,解决学术写作中LaTeX与Word格式割裂的难题。该方法支持批量处理、格式保真,并能与Markdown、Jupyter Notebook等工具集成,构建自动化写作流程,实现学术论文格式无忧。

qsc90123456的博客 295

QT与Coin3D实现机器人的仿真

前言 Coin3D编程环境配置好后,开始下一步的机器人仿真任务。本文根据在研5轴机器人,完成三维模型生成与机器人的仿真。主要参考博主冯Jungle的博客,在此表示感谢。 ——2021.05.23 环境 Win10:VS2019、QT5.15.2、Coin3D、SolidWorks2016 机器人三维模型生成 目前广泛应用于因特网的VRML ( Virtual Reality Modeling Language,虚拟现实建模语言)为用户提供一种可参与的、并能对场景中对象主动做出反应的虚拟现实环境,现已成

焦露的博客 6906

numpy学习笔记-唯一化

numpy提供了一些针对一维ndarray的基本集合运算。最常用的可能要数np.unique了,他用于找出数组中唯一值并返回已排序的结果。names = np.array(['Bob','Joe','Will','Bob','Will','Joe','Joe']) print np.unique(names)输出的结果 ['Bob' 'Joe' 'Will']ints = np.array([3,3

jiahaohappy的博客 1524

VAY 是 SAP 自动科目确定(OBYC-GBB)中的科目修改码,专用于带科目分配对象的销售订单发货场景,核心是触发 “Dr 成本要素科目(如销售费用 / 特定成本对象) Cr 库存商品” 的分录,

摘要:VAY是SAP中用于带科目分配对象(如成本中心、WBS)的销售订单发货的科目修改码,与标准VAX场景不同,它生成"借成本要素科目/贷库存商品"的分录。配置路径为OBYC-GBB-VAY,需确保借方科目为成本要素。典型业务场景包括免费样品、项目专用发货等。常见问题包括VAY未触发或科目记账错误,需检查销售订单科目分配、移动类型设置及OBYC配置。特殊场景建议单独配置科目以便费用分析。

金牌架构师 1252

15年!NumPy 论文终出炉,还登上了 Nature

点击上方蓝色小字,关注“涛哥聊Python”重磅干货,第一时间送达来源:机器之心NumPy 团队撰写了一篇综述文章,介绍 NumPy 的发展过程、主要特性和数组编程等。这篇文章现已发表在...

涛哥聊Python 573

UG NX二次开发(C++)-库缺少需要的入口点的原因与解决方案

在UG NX二次开发过程中,有时会遇到形形色色的bug,比如有个读者其采用UG NX二次开发(C++)时,遇到“库缺少需要的入口点”这个问题,看了一下他发给我的源代码,感觉有必要讲一下UG NX二次开发(C++)遇到此类问题的可能情况与解决方法。自然,这是博主的经验之谈,有不足之处还请在评论区讨论。

GimiGimmy 2201

【人工智能论文发表】基于医学病例文本和多模态大模型的医疗影像分割方法研究

摘要:本研究提出MMS-Former,一种基于级联多模态Transformer的文本引导医学图像分割框架。该模型创新性地将临床文本信息深度融入图像分割全过程,通过SwinUNETR提取视觉特征,ClinicalBERT编码病历文本,并在解码器的每个上采样阶段通过交叉注意力模块实现多级文本特征融合。实验表明,相比纯视觉模型,MMS-Former在Dice系数和IoU指标上分别提升3%以上,在处理边界模糊目标时表现尤为突出。模型还设计了结合Dice损失和图文对比损失的复合目标函数,确保分割精度与语义对齐。代码实

u012133341的博客 139

卧槽,实至名归!15年!NumPy论文终出炉,还登上了Nature

(给机器学习算法与Python学习加星标,提升AI技能)本文转自机器之心(nearhuman2014)NumPy 团队撰写了一篇综述文章,介绍 NumPy 的发展过程、主要特性和数组编程...

机器学习算法与Python学习 653

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

numpy交换维度_15年!NumPy论文终出炉,还登上了Nature

机器之心报道编辑:魔王、杜伟、小舟NumPy 团队撰写了一篇综述文章,介绍 NumPy 的发展过程、主要特性和数组编程等。这篇文章现已发表在 Nature 上。NumPy 是什么?它是大名鼎鼎的使用 Python 进行科学计算的基础软件包,是 Python 生态系统中数据分析、机器学习、科学计算的主力军,极大简化了向量与矩阵的操作处理。除了计算外,它还包括了:功能强大的 N 维数组对象。精密广播功...

weixin_39968410的博客 100

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

numpy维度交换_15年!NumPy论文终出炉,还登上了Nature

NumPy 团队撰写了一篇综述文章,介绍 NumPy 的发展过程、主要特性和数组编程等。这篇文章现已发表在 Nature 上。机器之心报道,编辑:魔王、杜伟、小舟。NumPy 是什么?它是大名鼎鼎的使用 Python 进行科学计算的基础软件包,是 Python 生态系统中数据分析、机器学习、科学计算的主力军,极大简化了向量与矩阵的操作处理。除了计算外,它还包括了:功能强大的 N 维数组对象。精密广...

weixin_39943992的博客 113

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

numpy如何直接在数组上进行添加_15年!NumPy论文终出炉,还登上了Nature

↑ 点击蓝字关注极市平台来源丨机器之心编辑丨极市平台极市导读NumPy是一种利用Python进行科学计算的基础软件包,功能非常强大。在NumPy出世15年后,研发团队终于在Nature发表了一篇综述性文章,详细地介绍该软件的信息。NumPy 团队撰写了一篇综述文章,介绍 NumPy 的发展过程、主要特性和数组编程等。这篇文章现已发表在 Nature 上。NumPy 是什么?它是大名鼎...

weixin_39746382的博客 135

NumPy论文终出炉,还登上了Nature

机器之心来源:机器之心NumPy 团队撰写了一篇综述文章,介绍 NumPy 的发展过程、主要特性和数组编程等。这篇文章现已发表在 Nature 上。NumPy 是什么?它是大名鼎鼎的使用...

weixin_40920183的博客 225

本周AI热点回顾:英伟达400亿美元收购ARM;NumPy论文终出炉,登上了Nature;大杀器UniMP屠榜OGB

点击左上方蓝字关注我们01英伟达400亿美元收购ARM,或进军CPU领域直面英特尔美国当地时间 9 月 13 日,英伟达表示同意以 400 亿美元的价格收购软银的芯片部门 ARM。这将是...

百度大脑 1864

Numpy存在的最大意义

Numpy存在的最大意义思维转变 思维转变 大家都知道,直接用python基本语法也是可以实现一维二维多维数组的运算的,但是需要加点循环语句,简单的列表组合和字典就可以代替,那为什么需要Numpy? 仅仅是为了运算更快? 不是的,要让有数据分析相关需求的人的思维和经历放在数组运算上,放到数学上,编程代码实现上! 你可以去看一看,简单的一个数组多项式,用基本代码和Numpy 写出来的区别! ...

大义Python 551

学习Numpy,看这篇文章就够啦

导读:在数据分析当中,Python用到最多的第三方库就是Numpy。本文内容是「大数据DT」内容合伙人王皓阅读学习《Python 3智能数据分析快速入门》过后的思考和补充,结合这本书一起...

大数据 952

Python:一篇文章掌握Numpy的基本用法

前言 Numpy是一个开源的Python科学计算库,它是python科学计算库的基础库,许多其他著名的科学计算库如Pandas,Scikit-learn等都要用到Numpy库的一些功能。 本文主要内容如下: Numpy数组对象 创建ndarray数组 Numpy的数值类型 ndarray数组的属性 ndarray数组的切片和索引 处理数组形状 数组的类型转换 num...

weixin_30718391的博客 630

AI分布式Token中转站网关底层实现-东方仙盟

在终端优先同步架构下,所有终端智能体请求不再直连上游 MaaS 平台(千帆、百炼、DeepSeek 等),全部经由分布式 Token 中转站网关统一中继。网关承担虚拟客户密钥签发、上游子账号路由、前置内容安全审计、事务路由调度、可控网络震荡多上游链路容灾、SSE 流式透传、用量记账、封禁熔断、原始 IP 封包签名溯源等核心职责。本文基于 Go 实现分布式网关核心底座,复用架构原有无状态 Token 穿透、事务 ID 幂等、链路探活、多节点中继能力;区分两层密钥体系:面向终端客户的虚拟 Key。

cybersnow精通 28 门计算机语言,凭借其超凡的技术能力,成功开发过上万个应用,广泛涉及政府、商业、个人等众多领域,甚至在检察院、环保局、公安局等专业场景中也大放异彩。不仅熟练掌握单片机和物联网开发,在软件架构设计方面更是独树一帜,自创了跨平台软件 201

集中式与分布式怎么选:从订单读写看 KingbaseES 的架构边界

以订单系统为例,一笔付款会扣账户余额、写一条流水、更新订单状态;月末报表则可能按日期统计所有租户的订单。前者要求几项变更一起提交,后者关心查询会覆盖多大范围。讨论集中式与分布式,先把读写请求分开,比先数数据库节点更容易看清问题。KingbaseES 核心数据库是集中式关系数据库。KES RAC 和 KES TDC 也都可以部署为多节点形态,但它们的数据组织方式并不相同。

todoitbo的博客 5974

编队系列(二)|固定翼如何依靠邻居信息保持队形?一致性控制、通信拓扑与分布式仿真实现,附仿真代码

一致性编队将通信关系写入邻接矩阵和拉普拉斯矩阵,各机根据本机与邻居的协同变量误差生成局部修正量。普通位置一致性会使成员趋向同一点;固定翼编队需要对带槽位偏置的虚拟参考点、航迹角、速度或路径参数执行一致性,再由路径跟踪和单机制导层生成可飞参考。本文例程对二维虚拟参考点坐标进行一致性,并将路径速度、路径收敛速度和一致性速度组合为期望运动,再复用 LQR 与姿态控制接口。该结构适合验证静态环形拓扑下的多机编队,但其收敛与安全性仍受消息有效性、通信时延、拓扑变化、速度饱和、转弯曲率和机间避碰约束影响。

2302_80148937的博客 281

微服务架构落地:业务域全景与 DDD 落地 —— 如何避免把微服务写成“分布式单体”?

本文首发于微信公众号

helloword_monkey的博客 300
上一篇: 深度拆解特征工程经典案例,掌握比赛上分利器
下一篇: 初学者 | 10个例子带你了解机器学习中的线性代数
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值