NumPy 1.0: the numerical foundation of scientific Python

NumPy 1.0 (25 October 2006) by Travis Oliphant: numerical library unifying Numeric and numarray, ndarray as base n-dimensional array structure, optimised vectorised operations. The pillar of the scientific Python ecosystem.

Open SourceR&D NumPyTravis OliphantScientific PythonndarrayOpen Source

Pre-NumPy fragmentation

In the early 2000s numerical computing in Python was fragmented: Numeric (1995, Jim Hugunin) and numarray (2001, STScI) were two array libraries with divergent APIs; the scientific community was split.

Travis Oliphant (then at Brigham Young University, later co-founder of Enthought and Continuum Analytics / Anaconda) unifies the two in 2005-2006 as NumPy. Version 1.0 is released on 25 October 2006. BSD 3-Clause licence.

ndarray

NumPy’s core is ndarray — homogeneous n-dimensional array:

  • Fixed data type (float32, int64, etc.) — more efficient than Python lists
  • Multi-dimensional shape — 2D matrices, 3D+ tensors
  • Broadcasting — operations between compatible-shaped arrays
  • Vectorised operations — element-wise operations without Python for loops
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([10, 20])
print(a + b)        # broadcasting: [[11,22],[13,24]]
print(a @ b)        # matrix multiply: [50, 110]
print(np.linalg.inv(a))  # matrix inverse

Operators are implemented in C + BLAS/LAPACK, 10-100x faster than equivalent Python loops.

The scientific ecosystem

NumPy is born to become the base of a broader stack:

  • SciPy (Eric Jones, Travis Oliphant, Pearu Peterson, 2001+) — advanced numerical algorithms
  • matplotlib (John Hunter, 2003) — visualisation
  • SymPy — symbolic computation

Concrete adoption will depend on building a coherent ecosystem around ndarray.

Funding

NumPy is maintained by volunteers and Travis Oliphant, without dedicated funding structure.

In the Italian context

In Italian scientific research labs Python is entering as a modern alternative to MATLAB and Fortran for rapid prototyping. NumPy is the component that makes this choice plausible.


References: NumPy 1.0 (25 October 2006). Travis Oliphant. Unification of Numeric (1995) and numarray (2001). BSD 3-Clause licence. BLAS/LAPACK backend.

Need support? Under attack? Service Status
Need support? Under attack? Service Status