首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Numpy argmax源

Numpy argmax源
EN

Stack Overflow用户
提问于 2022-04-19 19:16:45
回答 2查看 126关注 0票数 1

我似乎找不到numpy argmax的代码。

文档中的源链接将我引向这里,它没有任何实际代码。

我浏览了所有提到argmax的函数,使用github搜索工具,但仍然没有成功。我肯定我漏掉了什么。

有人能把我引向正确的方向吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-19 23:44:02

Numpy是用C编写的。它使用一个模板引擎来解析一些注释以生成许多版本的相同泛型函数(通常用于许多不同的类型)。这个工具对于生成快速代码非常有帮助,因为C语言不提供(适当的)模板,比如C++。但是,它也使代码变得更加神秘,因为函数的名称通常是生成的。例如,泛型函数名可能类似于@TYPE@_@OP@,其中@TYPE@@OP@是两个宏,每个宏都可以采用不同的值。除此之外,CPython绑定还使代码更加复杂,因为必须从具有复杂数组(可能具有大量维度和自定义用户类型)的CPython代码和需要解码的CPython参数调用C函数。

_PyArray_ArgMinMaxCommon是一个很好的切入点,但它只是一个包装函数,而不是主要的计算函数。只有当您计划从Python中更改Numpy函数的原型时,它才会很有用。

主要的计算函数是 这里。函数上方的注释是用来生成函数变体的注释(例如。CDOUBLE_argmax)。注意,在主类型下面有一些替代的特定实现,如OBJECT_argmax,因为CPython对象和字符串的计算方式必须有所不同。谢谢你对Numpy的贡献。

票数 2
EN

Stack Overflow用户

发布于 2022-04-19 21:04:28

正如注释中提到的,您可能会在C代码实现(这里_PyArray_ArgMinMaxCommon下)中找到正在搜索的内容。代码本身可能非常复杂,所以如果您的目的是在numpy上打开一个具有广泛想法的问题,那么无论如何我都会在您链接的页面上这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71930194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档