NumPy C-API#
小心那些不愿理会细节的人。
— William Feather, Sr.
真相就在那里。
— Chris Carter, X档案
NumPy 提供了一个 C-API,允许用户扩展系统并访问数组对象以在其他例程中使用。真正理解 C-API 的最好方法是阅读源代码。但是,如果您不熟悉 (C) 源代码,这起初可能是一项艰巨的任务。请放心,随着实践,这项任务会变得更容易,您可能会惊讶于 C 代码有多么容易理解。即使您认为自己无法从头编写 C 代码,理解和修改已经编写的源代码也比从头开始创建它要容易得多 (de novo)。
Python 扩展尤其易于理解,因为它们都具有非常相似的结构。诚然,NumPy 不是一个简单的 Python 扩展,可能需要更多的时间才能掌握。这尤其是因为代码生成技术简化了非常相似代码的维护,但可能会使代码对初学者稍微难以阅读一些。尽管如此,只要坚持下去,就能理解代码。我希望本 C-API 指南能够帮助您熟悉使用 NumPy 可以完成的编译级工作,以便从代码中挤出最后一点必要的速度。