  Array programming provides a powerful, compact, expressive syntax for
accessing, manipulating, and operating on data in vectors, matrices, and
higher-dimensional arrays. NumPy is the primary array programming library for
the Python language. It plays an essential role in research analysis pipelines
in fields as diverse as physics, chemistry, astronomy, geoscience, biology,
psychology, material science, engineering, finance, and economics. For example,
in astronomy, NumPy was an important part of the software stack used in the
discovery of gravitational waves and the first imaging of a black hole. Here we
show how a few fundamental array concepts lead to a simple and powerful
programming paradigm for organizing, exploring, and analyzing scientific data.
NumPy is the foundation upon which the entire scientific Python universe is
constructed. It is so pervasive that several projects, targeting audiences with
specialized needs, have developed their own NumPy-like interfaces and array
objects. Because of its central position in the ecosystem, NumPy increasingly
plays the role of an interoperability layer between these new array computation
libraries.
