Array Programming with NumPy
Authors:
Charles R. Harris,
K. Jarrod Millman,
Stéfan J. van der Walt,
Ralf Gommers,
Pauli Virtanen,
David Cournapeau,
Eric Wieser,
Julian Taylor,
Sebastian Berg,
Nathaniel J. Smith,
Robert Kern,
Matti Picus,
Stephan Hoyer,
Marten H. van Kerkwijk,
Matthew Brett,
Allan Haldane,
Jaime Fernández del Río,
Mark Wiebe,
Pearu Peterson,
Pierre Gérard-Marchant,
Kevin Sheppard,
Tyler Reddy,
Warren Weckesser,
Hameer Abbasi,
Christoph Gohlke
, et al. (1 additional authors not shown)
Abstract:
Array programming provides a powerful, compact, 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, material sci…
▽ More
Array programming provides a powerful, compact, 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, material 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 and the first imaging of a black hole. Here we show how a few fundamental array concepts lead to a simple and powerful programming paradigm for organizing, exploring, and analyzing scientific data. NumPy is the foundation upon which the entire scientific Python universe is constructed. It is so pervasive that several projects, targeting audiences with specialized needs, have developed their own NumPy-like interfaces and array objects. Because of its central position in the ecosystem, NumPy increasingly plays the role of an interoperability layer between these new array computation libraries.
△ Less
Submitted 17 June, 2020;
originally announced June 2020.
SciPy 1.0--Fundamental Algorithms for Scientific Computing in Python
Authors:
Pauli Virtanen,
Ralf Gommers,
Travis E. Oliphant,
Matt Haberland,
Tyler Reddy,
David Cournapeau,
Evgeni Burovski,
Pearu Peterson,
Warren Weckesser,
Jonathan Bright,
Stéfan J. van der Walt,
Matthew Brett,
Joshua Wilson,
K. Jarrod Millman,
Nikolay Mayorov,
Andrew R. J. Nelson,
Eric Jones,
Robert Kern,
Eric Larson,
CJ Carey,
İlhan Polat,
Yu Feng,
Eric W. Moore,
Jake VanderPlas,
Denis Laxalde
, et al. (10 additional authors not shown)
Abstract:
SciPy is an open source scientific computing library for the Python programming language. SciPy 1.0 was released in late 2017, about 16 years after the original version 0.1 release. SciPy has become a de facto standard for leveraging scientific algorithms in the Python programming language, with more than 600 unique code contributors, thousands of dependent packages, over 100,000 dependent reposit…
▽ More
SciPy is an open source scientific computing library for the Python programming language. SciPy 1.0 was released in late 2017, about 16 years after the original version 0.1 release. SciPy has become a de facto standard for leveraging scientific algorithms in the Python programming language, with more than 600 unique code contributors, thousands of dependent packages, over 100,000 dependent repositories, and millions of downloads per year. This includes usage of SciPy in almost half of all machine learning projects on GitHub, and usage by high profile projects including LIGO gravitational wave analysis and creation of the first-ever image of a black hole (M87). The library includes functionality spanning clustering, Fourier transforms, integration, interpolation, file I/O, linear algebra, image processing, orthogonal distance regression, minimization algorithms, signal processing, sparse matrix handling, computational geometry, and statistics. In this work, we provide an overview of the capabilities and development practices of the SciPy library and highlight some recent technical developments.
△ Less
Submitted 23 July, 2019;
originally announced July 2019.