Moving to the numerical Python stack

Numerical computing of all kinds—data analysis, simulation, visualization, etc.—is moving to Python and its scientific computing stack. Why is this? Do you want to move your company to Python? If so, would you like some help?

Why the Python stack

One reason people are moving to Python is convenience. Although licenses for the “Three M’s” (Matlab, Maple, and Mathematica) are pricey, companies don’t object to buying them, as long as you’re willing to wait a month for your request to wind its way through approval and purchasing. Because Python and its scientific programming stack are open source, you can download everything you need in a few minutes. (This is especially true of a Python distribution like Anaconda that contains all the most popular packages for numerical computing.) Not only do you not need to purchase licenses, neither do customers or anyone else you’d like to run your software.

In addition to people moving to Python from commercial mathematical software, they’re also moving to Python from other open source platforms such as R. A few years ago people would say “I’d love to do my data analysis in Pandas, but the libraries just aren’t there.” The landscape has changed dramatically since then. Libraries like pandas have have allowed Python to come up from behind and pass other platforms. There’s been a burst of development around Python and data, and these new packages are becoming more integrated. (You can find out more about the proliferation and consolidation of Python tools in this keynote from the SciPy 2015 conference.)

People are also moving to Python from lower-level languages. There’s no longer the same need to write code in C or similar languages for speed. The packages making up the Python scientific computing stack are written in efficient, lower-level code. When the performance bottleneck is inside calls to one of these packages, you’re effectively running C. When the performance bottleneck is in your Python code, there are tools such as numba and Cython that may give you C-like performance without having to completely rewrite your code.

Moving to Python

Programming languages aren’t as important as platforms. An experienced programmer can start to pick up a new programming language in a few days. The harder part is learning the ecosystem around a programming language: the development tools, the libraries, the culture, etc. That’s were some expert help can be very valuable.

You can make the move gradually. Python integrates well with other languages, and so you can leave existing code alone unless and until it makes sense to move it. You can use Python as the glue to bind the pieces together, leaving mature components alone, and use Python as the language for new development.

If you’d like guidance in moving to the Python platform, my colleagues and I can help. Give us a call to discuss how we could work together.

Work together