Chris Myers, Andrew Dolgert (original author)
Cornell Center for Advanced Computing

Revisions: 6/2023, 5/2020, 8/2018, 6/2015, 5/2011 (original)

Third-party libraries leveraging compiled kernels are central to the Python scientific computing ecosystem. In addition to providing greater numerical efficiencies and implementing a variety of useful algorithms, these libraries also define new types of objects that capture useful abstractions for numerical and scientific computing. These new datatypes are often containers or collections capable of holding large amounts of data, and define aggregated operations that act over all the elements of the collection in compiled code, rather than requiring iteration through the container in the python interpreter. Two central libraries in the Python scientific computing ecosystem — NumPy and SciPy — are described in more detail.

Objectives

After completing this topic, you should be able to:

  • Describe how compiled libraries can improve performance of Python programs
  • Use the NumPy and SciPy packages for scientific computing
  • Understand the larger Python ecosystem for scientific computing
  • Understand how to configure Python installations to support your computing needs
Prerequisites

As this topic focuses on accelerating Python programs for scientific computing, it implicitly assumes the reader has some prior experience programming in Python, as well as working knowledge of general programming concepts. The target audience is scientists and engineers who are already programming in Python, and are interested in using Python tools and packages to improve the run time performance of the programs they are developing. If additional introductory material about Python is needed, readers can consult Introduction to Python Programming as well as the documentation on the python.org website.

 
©  |   Cornell University    |   Center for Advanced Computing    |   Copyright Statement    |   Inclusivity Statement