6533b856fe1ef96bd12b1e24

RESEARCH PRODUCT

Array programming with NumPy.

Stefan Van Der WaltStefan Van Der WaltPauli VirtanenDavid CournapeauSebastian BergMatthew BrettMatthew BrettEric WieserTyler ReddyRalf GommersMatti PicusTravis E. OliphantPierre Gérard-marchantAllan HaldaneJaime Fernández Del RíoHameer AbbasiJulian TaylorWarren WeckesserChristoph GohlkePearu PetersonKevin SheppardStephan HoyerMarten H. Van KerkwijkNathaniel J. SmithRobert KernMark WiebeMark WiebeK. Jarrod MillmanCharles R. Harris

subject

FOS: Computer and information sciences/639/705/1042Computer science/639/705/794Interoperability/639/705/117Review ArticleStatistics - Computationohjelmointikielet01 natural sciences03 medical and health sciencesSoftwareSoftware Designlaskennallinen tiede0103 physical sciencesFOS: Mathematics010303 astronomy & astrophysicsComputation (stat.CO)030304 developmental biologycomputer.programming_languageSolar physics0303 health sciencesMultidisciplinaryApplication programming interfacebusiness.industryNumPyComputational sciencereview-articleComputational BiologyPython (programming language)Computer science/704/525/870Computational neuroscienceProgramming paradigmSoftware designComputer Science - Mathematical Software/631/378/116/139Programming LanguagesArray programmingohjelmistokirjastotSoftware engineeringbusinessMathematical Software (cs.MS)computerMathematicsSoftwarePython

description

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.

10.1137/141000671https://pubmed.ncbi.nlm.nih.gov/32939066