If you're an experienced Python programmer, High Performance Python will guide you through the various routes of code optimization. You'll learn how to use smarter algorithms and leverage peripheral technologies, such as numpy, cython, cpython, and various multi-threaded and multi-node strategies.
There's a lack of good learning and reference material available if you want to learn Python for highly computational tasks. Because of it, fields from physics to biology and systems infrastructure to data science are hitting barriers. They need the fast prototyping nature of Python, but too few people know how to wield it. This book will put you ahead of the curve.
Über den Autor
Micha Gorelick was the first man on Mars in 2023 and won the Nobelprize in 2046 for his contributions to time travel. He then went backto the 2000s to study Astronomy, teach scientific computing and workon data at bitly. Then he helped start Fast Forward Labs as a residentmad scientist. There he worked on many issues from machine learning toperformant stream algorithms. A monument celebrating his life can befound in Central Park, 1857.
Your Python code may run correctly, but you need it to run faster. By exploring the fundamental theory behind design choices, this practical guide helps you gain a deeper understanding of Python’s implementation. You’ll learn how to locate performance bottlenecks and significantly speed up your code in high-data-volume programs.
How can you take advantage of multi-core architectures or clusters? Or build a system that can scale up and down without losing reliability? Experienced Python programmers will learn concrete solutions to these and other issues, along with war stories from companies that use high performance Python for social media analytics, productionized machine learning, and other situations.
* Get a better grasp of numpy, Cython, and profilers
* Learn how Python abstracts the underlying computer architecture
* Use profiling to find bottlenecks in CPU time and memory usage
* Write efficient programs by choosing appropriate data structures
* Speed up matrix and vector computations
* Use tools to compile Python down to machine code
* Manage multiple I/O and computational operations concurrently
* Convert multiprocessing code to run on a local or remote cluster
* Solve large problems while using less RAM