IDEAS home Printed from https://ideas.repec.org/a/nat/nature/v585y2020i7825d10.1038_s41586-020-2649-2.html
   My bibliography  Save this article

Array programming with NumPy

Author

Listed:
  • Charles R. Harris

    (Independent researcher)

  • K. Jarrod Millman

    (University of California, Berkeley
    University of California, Berkeley
    University of California, Berkeley)

  • Stéfan J. Walt

    (University of California, Berkeley
    University of California, Berkeley
    Applied Mathematics, Stellenbosch University)

  • Ralf Gommers

    (Quansight)

  • Pauli Virtanen

    (University of Jyväskylä
    University of Jyväskylä)

  • David Cournapeau

    (Mercari JP)

  • Eric Wieser

    (University of Cambridge)

  • Julian Taylor

    (Independent researcher)

  • Sebastian Berg

    (University of California, Berkeley)

  • Nathaniel J. Smith

    (Independent researcher)

  • Robert Kern

    (Enthought)

  • Matti Picus

    (University of California, Berkeley)

  • Stephan Hoyer

    (Google Research)

  • Marten H. Kerkwijk

    (University of Toronto)

  • Matthew Brett

    (University of California, Berkeley
    University of Birmingham)

  • Allan Haldane

    (Temple University)

  • Jaime Fernández Río

    (Google)

  • Mark Wiebe

    (The University of British Columbia
    Amazon)

  • Pearu Peterson

    (Quansight
    Independent researcher
    Institute of Cybernetics at Tallinn Technical University)

  • Pierre Gérard-Marchant

    (University of Georgia
    France-IX Services)

  • Kevin Sheppard

    (University of Oxford)

  • Tyler Reddy

    (CCS-7, Los Alamos National Laboratory)

  • Warren Weckesser

    (University of California, Berkeley)

  • Hameer Abbasi

    (Quansight)

  • Christoph Gohlke

    (University of California, Irvine)

  • Travis E. Oliphant

    (Quansight)

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.

Suggested Citation

  • Charles R. Harris & K. Jarrod Millman & Stéfan J. Walt & Ralf Gommers & Pauli Virtanen & David Cournapeau & Eric Wieser & Julian Taylor & Sebastian Berg & Nathaniel J. Smith & Robert Kern & Matti Picu, 2020. "Array programming with NumPy," Nature, Nature, vol. 585(7825), pages 357-362, September.
  • Handle: RePEc:nat:nature:v:585:y:2020:i:7825:d:10.1038_s41586-020-2649-2
    DOI: 10.1038/s41586-020-2649-2
    as

    Download full text from publisher

    File URL: https://www.nature.com/articles/s41586-020-2649-2
    File Function: Abstract
    Download Restriction: Access to the full text of the articles in this series is restricted.

    File URL: https://libkey.io/10.1038/s41586-020-2649-2?utm_source=ideas
    LibKey link: if access is restricted and if your library uses this service, LibKey will redirect you to where you can use your library subscription to access this item
    ---><---

    As the access to this document is restricted, you may want to search for a different version of it.

    More about this item

    Statistics

    Access and download statistics

    Corrections

    All material on this site has been provided by the respective publishers and authors. You can help correct errors and omissions. When requesting a correction, please mention this item's handle: RePEc:nat:nature:v:585:y:2020:i:7825:d:10.1038_s41586-020-2649-2. See general information about how to correct material in RePEc.

    If you have authored this item and are not yet registered with RePEc, we encourage you to do it here. This allows to link your profile to this item. It also allows you to accept potential citations to this item that we are uncertain about.

    We have no bibliographic references for this item. You can help adding them by using this form .

    If you know of missing items citing this one, you can help us creating those links by adding the relevant references in the same way as above, for each refering item. If you are a registered author of this item, you may also want to check the "citations" tab in your RePEc Author Service profile, as there may be some citations waiting for confirmation.

    For technical questions regarding this item, or to correct its authors, title, abstract, bibliographic or download information, contact: Sonal Shukla or Springer Nature Abstracting and Indexing (email available below). General contact details of provider: http://www.nature.com .

    Please note that corrections may take a couple of weeks to filter through the various RePEc services.

    IDEAS is a RePEc service. RePEc uses bibliographic data supplied by the respective publishers.