Scinovex
article Open AccessTop 1% cited

Array programming with NumPy

Nature · 2020 · Vol. 585(7825) · pp. 357–362
Charles R. HarrisK. Jarrod MillmanStéfan J. van der WaltRalf GommersPauli VirtanenDavid CournapeauEric WieserJulian TaylorSebastian BergNathaniel J. SmithRobert KernMatti PicusStephan HoyerMarten H. van KerkwijkMatthew BrettAllan HaldaneJaime Fernández del RíoMark WiebePearu PetersonPierre Gérard-MarchantKevin SheppardTyler ReddyWarren WeckesserHameer AbbasiChristoph GohlkeTravis E. Oliphant

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 waves<sup>1</sup> and in the first imaging of a black hole<sup>2</sup>. 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.

Computational Physics and Python ApplicationsMachine Learning in Materials ScienceScientific Computing and Data ManagementPython (programming language)InteroperabilitySyntaxProgramming paradigmApplication programming interfaceSoftwareGeneric programmingComputation

MeSH terms

MathematicsProgramming LanguagesSoftware DesignComputational Biology

Funding

  • Alfred P. Sloan Foundation
  • Gordon and Betty Moore Foundation
Citations
20,904
FWCI
1275.53
field-weighted impact
References
41
Percentile
100%
vs. same field & year
Citations per year
Cited by
First-principles Phonon Calculations with Phonopy and Phono3py
Journal of the Physical Society of Japan · 2022 · 1,447 citations
gmx_MMPBSA: A New Tool to Perform End-State Free Energy Calculations with GROMACS
Journal of Chemical Theory and Computation · 2021 · 2,728 citations
<i>Gaia</i>Early Data Release 3
Astronomy and Astrophysics · 2020 · 3,755 citations
A structural biology community assessment of AlphaFold2 applications
Nature Structural & Molecular Biology · 2022 · 674 citations
Search for an Isotropic Gravitational-wave Background with the Parkes Pulsar Timing Array
The Astrophysical Journal Letters · 2023 · 1,103 citations
Cellpose: a generalist algorithm for cellular segmentation
Nature Methods · 2020 · 4,059 citations
The NANOGrav 15 yr Data Set: Evidence for a Gravitational-wave Background
The Astrophysical Journal Letters · 2023 · 1,383 citations
Citation Network

How this paper connects to the literature. Drag to explore, click any node to open that paper.