Cython in Depth

Our course High-Performance Computing with Python also covers Cython, focussing on the integration with NumPy.

Computer Science, Education & Learning

Submit new post
Thank you for posting.
Share it:

This course is given by a core developer of the Cython open-source project.

Target Audience

The course targets medium level to experienced Python programmers who want to break through the limits of Python performance. A basic understanding of the C language is helpful but not required.


The Python programming language has been used successfully in a large number of application domains. Even performance critical applications, such as scientific computation frameworks or text processing applications, have been realized using Python in order to benefit from short development cycles and highly maintainable code.

However, the interpreted language also has its weaknesses. Tight algorithms in numerical computations and character processing often suffer from the overhead of object operations in arithmetic expressions or memory copies in string slicing. In high performance applications, the optimizations that can be performed at the language level may not be sufficient.

This is where the Cython programming language shows its strength. Cython is a general purpose programming language that forms a best-of-both-worlds cross between the Python language and the ubiquitous datatypes of the C/C++ language. It comes with an optimising compiler that translates Python code into C code for Python extension modules, and tightly adapts the generated code to the available static type information.

Cython code can be written as high-level Python code and manually optimised in well selected hot-spots by statically declaring data types or calling directly into external code written in C, C++ or compatible languages. This makes the entire range from simple, expressive Python code down to highly optimised, low-level C code available for programming in a single language.

The objective of this course is to get to know the Cython language, and to learn how to use it to speed up Python code by orders of magnitude. You will also learn how to wrap external C libraries to efficiently and comfortably use them from Python.

Course Content


using pyximport to quickly (re-)build extension modules

using cython.inline() to compile code at runtime

building extension modules with distutils


fast access to Python's builtin types

fast looping over Python iterables and C types

string processing

fast arithmetic

incrementally optimizing Cython code

multi-threading outside of the GIL (Global Interpreter Lock)


calling into external C libraries

building against C libraries

writing Python wrapper APIs

calling C functions across extension module boundaries


The participants are encouraged to send in short code examples from their own experience that they would like to see running faster by using Cython. Based on general interest and practicality, one or two of these examples will be examined as a case study. These examples must be available to the teacher at least one week before the course, and must be short but complete executable examples, including sufficient input data for benchmarking. Please be aware that example code that requires a substantial amount of explanation or background knowledge about a specific application domain will not be accepted.

Course Duration

2 days


The participants can follow all steps directly on their computers. There are exercises at the end of each unit providing ample opportunity to apply the freshly learned knowledge.

Course Material

Every participant receives comprehensive printed materials that cover the whole course content as wells a CD with all source codes and used software.

Recommended Module Combinations

You should have intermediate Python experience or attend the course Python for Programmers before. You might be interested in the modules Advanced Python, Optimizing of Python Programs or Python Extensions with Other Languages as well.

From: October 16, 2014 00:00
To: October 17, 2014 23:59

Python Academy GmbH & Co. KG, 20 Zur Schule, 04158, Leipzig, Germany


Computer Science, Education & Learning


c/c++, programming language, python

Contact email

Contact phone
+49 341 260 3370


Submitted by:


Are you the organizer?

Get in touch