Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself. In simple words, it will light speed your Python code :D. Cython will give you combined Power of C and Python.
The Cython language is a superset of the Python language that additionally supports calling C functions and declaring C types on variables and class attributes. This allows the compiler to generate very efficient C code from Cython code. Some awesome features of
It will help you to:
- write Python code that calls back and forth from and to C or C++ code natively at any point.
- easily tune readable Python code into plain C performance by adding static type declarations, also in Python syntax.
- use combined source code level debugging to find bugs in your Python, Cython and C code.
- interact efficiently with large data sets, e.g. using multi-dimensional NumPy arrays.
- quickly build your applications within the large, mature and widely used CPython ecosystem.
- integrate natively with existing code and data from legacy, low-level or high-performance libraries and applications.
Why Cython is gaining a lot of traction?
There are many reasons why Python is gaining traction to solve problems in finance. Firstly, it’s relatively easy to learn. It’s also generally quicker to write programs in Python. There are also many Python libraries which are suited to analysing financial markets, such as pandas, for dealing with time series. However, one major drawback of Python is that it’ll typically run much slower than code written in languages like C. Python has the GIL (global interpreter lock), which means at any one time, just one thing can be executed at a time. The question I always get asked is how can we make Python quicker and what skills do I need to learn to do this?
One solution is Cython. In practice, Cython code is actually very similar to Python albeit with a few bells and whistles. Lots of well-known Python libraries actually use Cython. The big plus is that
Go through our quick introduction to python and quickly get started.
Need some multi-processing?? Cython got you covered.
If your code does a lot of downloading of data from external sources such as the web or databases, some nice choices to speed this up are Python’s threading and
Cython is also the ideal language for wrapping external C libraries, embedding CPython into existing applications, and for fast C modules that speed up the execution of Python code. So if your company have a lot of legacy C
The last way to speed up your Python code is probably the first thing you should try! It involves trying to vectorise your code to use libraries like NumPy and pandas, rather than overusing for loops. Very often this might actually make your code quick enough anyway.
So, yes Python isn’t the fastest language out there. However, there are solutions to help speed up the code. The bad news is there’s no free lunch, and most of the skills I’ve mentioned will require some time to learn.
If Cython has got your notice then you can download it from here. Download Cython
Rights reserved by the respective content owners.