Synopses & Reviews
Build software that combines Pythons expressivity with the performance and control of C (and C++). Its possible with Cython, the compiler and hybrid programming language used by foundational packages such as NumPy, and prominent in projects including Pandas, h5py, and scikits-learn. In this practical guide, youll learn how to use Cython to improve Pythons performance—up to 3000x— and to wrap C and C++ libraries in Python with ease.
Author Kurt Smith takes you through Cythons capabilities, with sample code and in-depth practice exercises. If youre just starting with Cython, or want to go deeper, youll learn how this language is an essential part of any performance-oriented Python programmers arsenal.
- Use Cythons static typing to speed up Python code
- Gain hands-on experience using Cython features to boost your numeric-heavy Python
- Create new types with Cython—and see how fast object-oriented programming in Python can be
- Effectively organize Cython code into separate modules and packages without sacrificing performance
- Use Cython to give Pythonic interfaces to C and C++ libraries
- Optimize code with Cythons runtime and compile-time profiling tools
- Use Cythons prange function to parallelize loops transparently with OpenMP
Synopsis
Cython is a compiler and hybrid programming language that combines the expressivity of Python with the performance and control of C (and C++). In this book, Kurt Smith shows you how to use Cython to yield massive performance improvements over pure Python (up to 3000X) and how to use Cython to easily wrap C and C++ libraries in Python. By removing the barrier between Python and C, Cython harnesses the best of both languages while remaining familiar and comfortable to Python users.
Cython has proven its usefulness in many foundational projects: Pandas, SymPy, Sage, and dozens of others, both open and closed source. You'll learn how Cython is an essential part of any performance-oriented Python programmers arsenal.
About the Author
Kurt Smith has been using Python in scientific computing ever since his college days, looking for any opportunity to incorporate it into his computational physics classes. He has contributed to the Cython project as part of the 2009 Google Summer of Code, implementing the initial version of typed memoryviews and native cython arrays. He uses Cython extensively in his consulting work at Enthought, training hundreds of scientists, engineers, and researchers in Python, NumPy, Cython, and parallel and high-performance computing.