NumPy
中文网
About
User Guide
Reference
Awesome
Other Document
Other Document
Benchmarking
NumPy Developer Guide
F2Py Guide
Building and Extending the Documentation
Learn More
Learn More
Community
Reporting bugs
Release Notes
open in new window
License of NumPy
NumPy Enhancement Proposals
Languages
Languages
简体中文
English
GitHub
#
Using NumPy C-API
How to extend NumPy
Writing an extension module
Required subroutine
Defining functions
Functions without keyword arguments
Functions with keyword arguments
Reference counting
Dealing with array objects
Converting an arbitrary sequence object
Creating a brand-new ndarray
Getting at ndarray memory and accessing elements of the ndarray
Example
Using Python as glue
Calling other compiled libraries from Python
Hand-generated wrappers
f2py
Creating source for a basic extension module
Creating a compiled extension module
Improving the basic interface
Inserting directives in Fortran source
A filtering example
Calling f2py from Python
Automatic extension module generation
Conclusion
Cython
Complex addition in Cython
Image filter in Cython
Conclusion
ctypes
Having a shared library
Loading the shared library
Converting arguments
Calling the function
Complete example
Conclusion
Additional tools you may find useful
SWIG
SIP
Boost Python
PyFort
Writing your own ufunc
Creating a new universal function
Example Non-ufunc extension
Example NumPy ufunc for one dtype
Example NumPy ufunc with multiple dtypes
Example NumPy ufunc with multiple arguments/return values
Example NumPy ufunc with structured array dtype arguments
Beyond the Basics
Iterating over elements in the array
Basic Iteration
Iterating over all but one axis
Iterating over multiple arrays
Broadcasting over multiple arrays
User-defined data-types
Adding the new data-type
Registering a casting function
Registering coercion rules
Registering a ufunc loop
Subtyping the ndarray in C
Creating sub-types
Specific features of ndarray sub-typing
The
array_finalize
method
The
array_priority
attribute
The
array_wrap
method