Numpy argmax 源代码

Numpy argmax source

我好像找不到 numpy argmax 的代码。

文档中的源 link 将我带到 here,它没有任何实际代码。

我使用 github 搜索工具检查了每个提到 argmax 的函数,但仍然没有成功。我确定我遗漏了什么。

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

谢谢

如评论中所述,您可能会在 C 代码实现中找到您正在搜索的内容(here_PyArray_ArgMinMaxCommon 下)。代码本身可能非常复杂,因此如果您的意图是在 numpy 上提出问题并提出广泛的想法,我会在您链接的页面上进行。

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

_PyArray_ArgMinMaxCommon 是一个很好的切入点,但它 只是一个包装函数 而不是主要的计算函数。它仅在您计划从 Python.

更改 Numpy 函数的原型时才有用

主要的计算函数可以找到here。函数上方的注释是用于生成函数变体的注释(例如 CDOUBLE_argmax)。请注意,在主要类型下面有一些替代类型的替代特定实现,例如 OBJECT_argmax 因为 CPython 对象和字符串的计算方式必须略有不同。感谢您为 Numpy 做出贡献。