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