NumPy C-API
Beware of the man who won’t be bothered with details.
— William Feather, Sr.
The truth is out there.
— Chris Carter, The X Files
NumPy提供了一个C-API,使用户能够扩展系统并访问数组对象,以便在其他例程中使用。真正理解C-API的最好方法是阅读源代码。 但是,如果您不熟悉(C)源代码,一开始这可能是一种令人畏惧的体验。 请放心,随着练习的进行,任务会变得更容易,您可能会惊讶于C代码可以如此简单地理解。 即使您不认为可以从头开始编写C代码,理解和修改已经编写的源代码也要容易得多,然后从头开始创建它。
Python扩展特别容易理解,因为它们都具有非常相似的结构。 诚然,NumPy不是Python的一个微不足道的扩展,可能需要更多的窥探才能掌握。 这是由于代码生成技术的缘故,这些技术简化了非常相似的代码的维护,但会使代码对初学者的可读性稍差一些。 不过,只要稍加坚持,代码就可以开放给您理解。我希望这本C-API指南可以帮助您熟悉可以用NumPy完成的编译级工作, 以便从您的代码中挤出最后一点必要的速度。
- Python类型和C结构
- New Python Types Defined
- Other C-Structures
- 系统配置
- Data type sizes
- Platform information
- Compiler directives
- Interrupt Handling
- 数据类型API
- Enumerated Types
- Defines
- C-type names
- Printf Formatting
- 数组API
- Array structure and data access
- Creating arrays
- Dealing with types
- Array flags
- Array method alternative API
- Functions
- Auxiliary Data With Object Semantics
- Array Iterators
- Broadcasting (multi-iterators)
- Neighborhood iterator
- Array Scalars
- Data-type descriptors
- Conversion Utilities
- Miscellaneous
- 数组迭代API
- Array Iterator
- Simple Iteration Example
- Simple Multi-Iteration Example
- Iterator Data Types
- Construction and Destruction
- Functions For Iteration
- Converting from Previous NumPy Iterators
- UFunc API
- Constants
- Macros
- Functions
- Generic functions
- Importing the API
- 一般的通函数API
- Definitions
- Details of Signature
- C-API for implementing Elementary Functions
- NumPy核心库
- NumPy core math library
- 弃用的 C API
- Background
- Deprecation Mechanism NPY_NO_DEPRECATED_API