Array programming with NumPy

2020 Nature 18,941 citations

Abstract

Array programming provides a powerful, compact and 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 has an essential role in research analysis pipelines in fields as diverse as physics, chemistry, astronomy, geoscience, biology, psychology, materials science, engineering, finance and economics. For example, in astronomy, NumPy was an important part of the software stack used in the discovery of gravitational waves1 and in the first imaging of a black hole2. Here we review how a few fundamental array concepts lead to a simple and powerful programming paradigm for organizing, exploring and analysing scientific data. NumPy is the foundation upon which the scientific Python ecosystem is constructed. It is so pervasive that several projects, targeting audiences with specialized needs, have developed their own NumPy-like interfaces and array objects. Owing to its central position in the ecosystem, NumPy increasingly acts as an interoperability layer between such array computation libraries and, together with its application programming interface (API), provides a flexible framework to support the next decade of scientific and industrial analysis. NumPy is the primary array programming library for Python; here its fundamental concepts are reviewed and its evolution into a flexible interoperability layer between increasingly specialized computational libraries is discussed.

MeSH Terms

Computational BiologyMathematicsProgramming LanguagesSoftware Design

Affiliated Institutions

Related Publications

Publication Info

Year
2020
Type
article
Volume
585
Issue
7825
Pages
357-362
Citations
18941
Access
Closed

Social Impact

Altmetric

Social media, news, blog, policy document mentions

Citation Metrics

18941
OpenAlex
1280
Influential

Cite This

Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt et al. (2020). Array programming with NumPy. Nature , 585 (7825) , 357-362. https://doi.org/10.1038/s41586-020-2649-2

Identifiers

DOI
10.1038/s41586-020-2649-2
PMID
32939066
PMCID
PMC7759461
arXiv
2006.10256

Data Quality

Data completeness: 84%