NumPy 1.0: il fondamento numerico di Python scientifico

NumPy 1.0 (25 ottobre 2006) di Travis Oliphant: libreria numerica che unifica Numeric e numarray, ndarray come struttura base per array n-dimensionali, operazioni vettorizzate ottimizzate. Il pilastro dell'ecosistema scientifico Python.

Open SourceR&D NumPyTravis OliphantScientific PythonndarrayOpen Source

La frammentazione pre-NumPy

A inizio 2000 il calcolo numerico in Python era frammentato: Numeric (1995, Jim Hugunin) e numarray (2001, STScI) erano due librerie array con API divergenti; la comunità scientifica era divisa.

Travis Oliphant (allora alla Brigham Young University, poi co-fondatore di Enthought e Continuum Analytics / Anaconda) unifica i due nel 2005-2006 con NumPy. La versione 1.0 è rilasciata il 25 ottobre 2006. Licenza BSD 3-Clause.

ndarray

Il cuore di NumPy è ndarray — array n-dimensionale omogeneo:

  • Tipo dato fisso (float32, int64, ecc.) — più efficiente di liste Python
  • Shape multi-dimensionale — matrici 2D, tensori 3D+
  • Broadcasting — operazioni tra array di shape compatibili
  • Vectorized operations — operazioni elementari senza for loop Python
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

Gli operatori sono implementati in C + BLAS/LAPACK, 10-100x più veloci di loop Python equivalenti.

L’ecosistema scientifico

NumPy diventa la base:

  • SciPy (Eric Jones, Travis Oliphant, Pearu Peterson, 2001+) — algoritmi numerici avanzati
  • matplotlib (John Hunter, 2003) — visualizzazione
  • pandas (Wes McKinney, 2008) — dataframes tabulari
  • scikit-learn (David Cournapeau, 2007) — machine learning
  • scikit-image — image processing
  • statsmodels — statistica avanzata
  • SymPy — simbolico
  • PyTorch, TensorFlow — deep learning frameworks usano NumPy per interoperabilità

Senza NumPy, Python non sarebbe lingua dominante di data science.

L’articolo su Nature (2020)

Nel settembre 2020 la rivista Nature pubblica “Array programming with NumPy” (Harris, Millman, van der Walt et al.) — rara copertura accademica top-tier per un progetto software open source. Riconosce NumPy come infrastruttura scientifica critica.

Finanziamento

NumPy è stato per anni mantenuto senza finanziamento strutturato da volontari e Travis Oliphant. Dal 2017 NumFOCUS (ente no-profit) raccoglie donazioni e sponsorship; CZI (Chan Zuckerberg Initiative) ha finanziato direttamente sviluppatori NumPy dal 2020.

Nel contesto italiano

NumPy è in ogni laboratorio italiano di ricerca scientifica, ogni data team, ogni progetto AI/ML. Ubiquità assoluta.


Riferimenti: NumPy 1.0 (25 ottobre 2006). Travis Oliphant. Unificazione di Numeric (1995) e numarray (2001). Licenza BSD 3-Clause. BLAS/LAPACK backend. NumFOCUS. Paper Harris et al., Nature 585, 357-362 (2020).

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi