Research articleOpen access

Array programming with NumPy

Show affiliations
  1. Independent researcher, Logan, UT, USA
  2. Berkeley Institute for Data Science, University of California, Berkeley, Berkeley, CA, USA
  3. Applied Mathematics, Stellenbosch University, Stellenbosch, South Africa
  4. Quansight, Austin, TX, USA
  5. Department of Physics, University of Jyväskylä, Jyväskylä, Finland
  6. Mercari JP, Tokyo, Japan
  7. Department of Engineering, University of Cambridge, Cambridge, UK
  8. Independent researcher, Karlsruhe, Germany
  9. Independent researcher, Berkeley, CA, USA
  10. Enthought, Austin, TX, USA
  11. Google Research, Mountain View, CA, USA
  12. Department of Astronomy and Astrophysics, University of Toronto, Toronto, Ontario, Canada
  13. Brain Imaging Center, University of California, Berkeley, Berkeley, CA, USA
  14. Department of Physics, Temple University, Philadelphia, PA, USA
  15. Google, Zurich, Switzerland
  16. Amazon, Seattle, WA, USA
  17. Department of Mechanics and Applied Mathematics, Institute of Cybernetics at Tallinn Technical University, Tallinn, Estonia
  18. Department of Biological and Agricultural Engineering, University of Georgia, Athens, GA, USA
  19. Department of Economics, University of Oxford, Oxford, UK
  20. CCS-7, Los Alamos National Laboratory, Los Alamos, NM, USA
  21. Laboratory for Fluorescence Dynamics, Biomedical Engineering Department, University of California, Irvine, Irvine, CA, USA

Nature2020585(7825): 357–362doi.org/10.1038/s41586-020-2649-2CC BY 4.0

Read at publisherPDFCite

23,538citations · OpenAlex

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 plays an essential role in research analysis pipelines in fields as diverse as physics, chemistry, astronomy, geoscience, biology, psychology, materials science, engineering, finance and economics.

Why it matters for Life Mapper

A foundational paper describing NumPy, the core array-programming library that underpins scientific computing in Python.

Editorial note by the Life Mapper team — not part of the original article.

Authors & affiliations

  • Charles R. Harris Independent researcher, Logan, UT, USA Funding acquisition · Formal analysis · Investigation · Methodology
  • K. Jarrod Millman Berkeley Institute for Data Science, University of California, Berkeley, Berkeley, CA, USA ORCID 0000-0002-5263-5070
  • Stéfan J. van der Walt Corresponding author Applied Mathematics, Stellenbosch University, Stellenbosch, South Africa ORCID 0000-0001-9276-1891
  • Ralf Gommers Corresponding author Quansight, Austin, TX, USA ORCID 0000-0002-0300-3333
  • Pauli Virtanen Department of Physics, University of Jyväskylä, Jyväskylä, Finland ORCID 0000-0001-9957-1257
  • David Cournapeau Mercari JP, Tokyo, Japan
Show all 26 authors
  • Eric Wieser Department of Engineering, University of Cambridge, Cambridge, UK ORCID 0000-0003-0412-4978
  • Julian Taylor Independent researcher, Karlsruhe, Germany
  • Sebastian Berg Berkeley Institute for Data Science, University of California, Berkeley, Berkeley, CA, USA
  • Nathaniel J. Smith Independent researcher, Berkeley, CA, USA
  • Robert Kern Enthought, Austin, TX, USA
  • Matti Picus Berkeley Institute for Data Science, University of California, Berkeley, Berkeley, CA, USA ORCID 0000-0002-1771-9949
  • Stephan Hoyer Google Research, Mountain View, CA, USA ORCID 0000-0002-5207-0380
  • Marten H. van Kerkwijk Department of Astronomy and Astrophysics, University of Toronto, Toronto, Ontario, Canada
  • Matthew Brett Brain Imaging Center, University of California, Berkeley, Berkeley, CA, USA
  • Allan Haldane Department of Physics, Temple University, Philadelphia, PA, USA
  • Jaime Fernández del Río Google, Zurich, Switzerland
  • Mark Wiebe Amazon, Seattle, WA, USA ORCID 0000-0003-3603-8038
  • Pearu Peterson Department of Mechanics and Applied Mathematics, Institute of Cybernetics at Tallinn Technical University, Tallinn, Estonia ORCID 0000-0001-7328-4305
  • Pierre Gérard-Marchant Department of Biological and Agricultural Engineering, University of Georgia, Athens, GA, USA
  • Kevin Sheppard Department of Economics, University of Oxford, Oxford, UK ORCID 0000-0001-8700-2292
  • Tyler Reddy CCS-7, Los Alamos National Laboratory, Los Alamos, NM, USA
  • Warren Weckesser Berkeley Institute for Data Science, University of California, Berkeley, Berkeley, CA, USA
  • Hameer Abbasi Quansight, Austin, TX, USA
  • Christoph Gohlke Laboratory for Fluorescence Dynamics, Biomedical Engineering Department, University of California, Irvine, Irvine, CA, USA ORCID 0000-0001-8108-7707
  • Travis E. Oliphant Quansight, Austin, TX, USA

Publication details

Journal
Nature · ISSN 0028-0836
Publisher
Springer Nature
Published
2020
Volume (issue): pages
585(7825): 357–362
Licence
CC BY 4.0 · Open access
Funding
European Commission · Award 101059607
Open access

Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., Wieser, E., Taylor, J., Berg, S., Smith, N. J., Kern, R., Picus, M., Hoyer, S., van Kerkwijk, M. H., Brett, M., Haldane, A., del Río, J. F., Wiebe, M., Peterson, P., ... Oliphant, T. E. (2020). Array programming with NumPy. Nature, 585(7825), 357-362. https://doi.org/10.1038/s41586-020-2649-2

Publisher: Springer Nature · CC-BY-4.0

Cited by: 23,538 · via OpenAlex

DOI: 10.1038/s41586-020-2649-2

Pre-release · Live build in progress — we're shaping this platform in real time. Your feedback guides what we build next.