---
title: "Array Programming with NumPy — Harris 2020"
description: "This paper describes NumPy, the main library for array programming in Python."
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", "Travis E. Oliphant"]
year: 2020
venue: "arXiv:2006.10256 (Nature 585, 357 (2020))"
source: "https://arxiv.org/abs/2006.10256"
doi: "10.1038/s41586-020-2649-2"
arxiv: "2006.10256"
licence: "CC BY 4.0 (arXiv)"
licence_url: "https://creativecommons.org/licenses/by/4.0/"
summary_licence: "Elamur Cosmic License"
canonical: "https://research.elamur.ai/free/en/papers/harris-2020-array-programming-numpy/"
---
[Elamur Research](https://md.research.elamur.ai/free/en/) · [this page in HTML](https://research.elamur.ai/free/en/papers/harris-2020-array-programming-numpy/)

[home](https://md.research.elamur.ai/free/en/) / [papers](https://md.research.elamur.ai/free/en/papers/) / [2020](https://md.research.elamur.ai/free/en/papers/2020/) / Array Programming with NumPy

# Array Programming with NumPy

**Authors:** Charles R. Harris, K. Jarrod Millman, [Stéfan J. van der Walt](https://md.research.elamur.ai/free/en/authors/stefan-j-van-der-walt/), [Ralf Gommers](https://md.research.elamur.ai/free/en/authors/ralf-gommers/), [Pauli Virtanen](https://md.research.elamur.ai/free/en/authors/pauli-virtanen/), [David Cournapeau](https://md.research.elamur.ai/free/en/authors/david-cournapeau/), Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, Robert Kern, Matti Picus et al. (26 authors) · **Year:** 2020 · **Venue:** arXiv:2006.10256 (Nature 585, 357 (2020)) · **Licence:** [CC BY 4.0 (arXiv)](https://creativecommons.org/licenses/by/4.0/)

**Links:** [Publisher's page](https://doi.org/10.1038/s41586-020-2649-2) · [PDF](https://arxiv.org/pdf/2006.10256v1) · [DOI 10.1038/s41586-020-2649-2](https://doi.org/10.1038/s41586-020-2649-2) · [arXiv 2006.10256](https://arxiv.org/abs/2006.10256) · [OpenAlex](https://openalex.org/W3035965352)

**Citations:** 23207 citations (openalex-snapshot · 2026-10-14) · [383](#cited-by) in our library, of the 140673 papers whose bibliographies we read

## Summary
This paper describes NumPy, the main library for array programming in Python. It argues that a few basic array concepts give scientists a compact and efficient way to organize, explore and analyze data. NumPy appeared in 2005 when two earlier competing packages, Numeric and Numarray, were merged, which ended a split in the user community. The authors explain the core data structure: a pointer to memory plus metadata describing its data type, shape and strides. They then cover the operations built on it: indexing that returns either views or copies, vectorized arithmetic, broadcasting and axis-wise reductions, with linear algebra handled by optimized backends. NumPy is presented as the base layer of the scientific Python ecosystem. The paper also covers its newer array protocols, which pass NumPy API calls through to other array libraries designed for GPUs or distributed systems. This matters because NumPy is now core research infrastructure and the common API for tensor computation, with formal governance and outside funding supporting it.

## Key points
- NumPy came out in 2005 and combined Numarray's features (structured arrays, memory mapping, flexible indexing) with Numeric's speed on small arrays and its C API.
- Array metadata includes dtype, shape and strides. For example, a float64 array of shape (4, 3) has strides (24, 8). Arrays can use C or Fortran memory order.
- Libraries such as SciPy, Matplotlib, pandas, scikit-learn and scikit-image are built on NumPy. It was part of the software used to detect gravitational waves and to make the first image of a black hole (eht-imaging).
- Array protocols let NumPy functions run on Dask, CuPy and similar arrays without changes, including CuPy arrays inside Dask arrays on multi-GPU clusters. Framework arrays such as PyTorch and TensorFlow are part of the same trend.
- The project is fiscally sponsored by NumFOCUS and has received funding from the Moore and Sloan Foundations and the Chan Zuckerberg Initiative. It still depends heavily on volunteer contributors.

*Our summary of the paper, in our own words — not its text. The work belongs to its authors; read it at the links above.*

Fields: [Mathematics & statistics](https://md.research.elamur.ai/free/en/shelves/mathematics/)

## Cited by

Cited by

383 papers of our library cite it (of the 140673 whose bibliographies we read); 10 of them have a page here, 373 not yet.

- [From Pretraining Data to Language Models to Downstream Tasks: Tracking the Trails of Political Biases Leading to Unfair NLP Models](https://md.research.elamur.ai/free/en/papers/feng-2023-pretraining-data-language-models-downstream/)
- [A Context-Dependent Gated Module for Incorporating Symbolic Semantics into Event Coreference Resolution](https://md.research.elamur.ai/free/en/papers/lai-2021-context-dependent-gated-module-incorporating/)
- [Progress measures for grokking via mechanistic interpretability](https://md.research.elamur.ai/free/en/papers/nanda-2023-progress-measures-grokking-mechanistic-interpretability/)
- [Learning Transferable Visual Models From Natural Language Supervision](https://md.research.elamur.ai/free/en/papers/radford-2021-learning-transferable-visual-models-natural/)
- [Robust Speech Recognition via Large-Scale Weak Supervision](https://md.research.elamur.ai/free/en/papers/radford-2022-robust-speech-recognition-large-scale/)
- [Entity-Level Sentiment Analysis with Sentence Relevance Detection](https://md.research.elamur.ai/free/en/papers/ronningstad-2026-entity-level-sentiment-analysis-sentence/)
- [Fairseq S2T: Fast Speech-to-Text Modeling with Fairseq](https://md.research.elamur.ai/free/en/papers/wang-2020-fairseq-s2t-fast-speech-text/)
- [基于大模型的具身智能系统综述](https://md.research.elamur.ai/free/en/papers/wang-2025-embodied-intelligence-systems/)
- [Large Language Models are Better Reasoners with Self-Verification](https://md.research.elamur.ai/free/en/papers/weng-2023-large-language-models-are-better/)
- [ToneSwiper: Facilitating Manual ToDI-annotation of Dutch Prosody](https://md.research.elamur.ai/free/en/papers/westera-2026-toneswiper-facilitating-manual-todi-annotation/)

## Cite

The paper itself, not this page. BibTeX from the library's record of the work.

```bibtex
@misc{harris2020array,
  title = {{Array Programming with NumPy}},
  author = {Harris, Charles R. and Millman, K. Jarrod and Walt, Stéfan J. van der and Gommers, Ralf and Virtanen, Pauli and Cournapeau, David and Wieser, Eric and Taylor, Julian and Berg, Sebastian and Smith, Nathaniel J. and Kern, Robert and Picus, Matti and Hoyer, Stephan and Kerkwijk, Marten H. van and Brett, Matthew and Haldane, Allan and Río, Jaime Fernández del and Wiebe, Mark and Peterson, Pearu and Gérard-Marchant, Pierre and Sheppard, Kevin and Reddy, Tyler and Weckesser, Warren and Abbasi, Hameer and Gohlke, Christoph and Oliphant, Travis E.},
  year = {2020},
  doi = {10.1038/s41586-020-2649-2},
  eprint = {2006.10256},
  archivePrefix = {arXiv},
  url = {https://doi.org/10.1038/s41586-020-2649-2}
}
```

- [← previous Are Pretrained Language Models Symbolic Reasoners over Knowledge?](https://md.research.elamur.ai/free/en/papers/kassner-2020-are-pretrained-language-models-symbolic/)
- [next → Artificial intelligence based writer identification generates new evidence for the unknown scribes of the Dead Sea Scrolls exemplified by the Great Isaiah Scroll (1QIsaᵃ)](https://md.research.elamur.ai/free/en/papers/hbo-2020-popovic-artificial-intelligence-based-writer-identification/)
- [↑ back to papers of 2020](https://md.research.elamur.ai/free/en/papers/2020/)

## References

16 references, 1 of them with a card of ours. ↗ leads to the work, «find» searches for one we have no id for yet.

1. K. E. Iverson, “Notation as a tool of thought,” Communications of the ACM, vol. 23, p. 444465, Aug. 1980. [find](https://scholar.google.com/scholar?q=K%2E+E%2E+Iverson%2C+%E2%80%9CNotation+as+a+tool+of+thought%2C%E2%80%9D+Communications+of+the+ACM%2C+vol%2E+23%2C+p%2E+444465%2C+Aug%2E+1980%2E)
2. P. F. Dubois, “Python: Batteries included,” Computing in Science & Engineering, vol. 9, no. 3, pp. 7–9, 2007. [find](https://scholar.google.com/scholar?q=P%2E+F%2E+Dubois%2C+%E2%80%9CPython%3A+Batteries+included%2C%E2%80%9D+Computing+in+Science+%26+Engineering%2C+vol%2E+9%2C+no%2E+3%2C+pp%2E+7%E2%80%939%2C+2007%2E)
3. T. E. Oliphant, “Python for scientific computing,” Computing in Science & Engineering, vol. 9, pp. 10–20, May-June 2007. [find](https://scholar.google.com/scholar?q=T%2E+E%2E+Oliphant%2C+%E2%80%9CPython+for+scientific+computing%2C%E2%80%9D+Computing+in+Science+%26+Engineering%2C+vol%2E+9%2C+pp%2E+10%E2%80%9320%2C+May%2DJune+2007%2E)
4. K. J. Millman and M. Aivazis, “Python for scientists and engineers,” Computing in Science & Engineering, vol. 13, no. 2, pp. 9–12, 2011. [find](https://scholar.google.com/scholar?q=K%2E+J%2E+Millman+and+M%2E+Aivazis%2C+%E2%80%9CPython+for+scientists+and+engineers%2C%E2%80%9D+Computing+in+Science+%26+Engineering%2C+vol%2E+13%2C+no%2E+2%2C+pp%2E+9%E2%80%9312%2C+2011%2E)
5. F. Pérez, B. E. Granger, and J. D. Hunter, “Python: an ecosystem for scientific computing,” Computing in Science & Engineering, vol. 13, no. 2, pp. 13–21, 2011. [find](https://scholar.google.com/scholar?q=F%2E+Pe%CC%81rez%2C+B%2E+E%2E+Granger%2C+and+J%2E+D%2E+Hunter%2C+%E2%80%9CPython%3A+an+ecosystem+for+scientific+computing%2C%E2%80%9D+Computing+in+Science+%26+Engineering%2C+vol%2E+13%2C+no%2E+2%2C+pp%2E+13%E2%80%9321%2C+2011%2E)
6. B. P. Abbott, R. Abbott, T. Abbott, M. Abernathy, F. Acernese, K. Ackley, C. Adams, T. Adams, P. Addesso, R. Adhikari, et al., “Observation of gravitational waves from a binary black hole merger,” Physical Review Letters, vol. 116, no. 6, p. 061102, 2016. [find](https://scholar.google.com/scholar?q=B%2E+P%2E+Abbott%2C+R%2E+Abbott%2C+T%2E+Abbott%2C+M%2E+Abernathy%2C+F%2E+Acernese%2C+K%2E+Ackley%2C+C%2E+Adams%2C+T%2E+Adams%2C+P%2E+Addesso%2C+R%2E+Adhikari%2C+et+al%2E%2C+%E2%80%9CObservation+of+gravitational+waves+from+a+binary+black+hole+merger%2C%E2%80%9D+Phy)
7. A. A. Chael, M. D. Johnson, R. Narayan, S. S. Doeleman, J. F. Wardle, and K. L. Bouman, “High-resolution linear polarimetric imaging for the event horizon telescope,” The Astrophysical Journal, vol. 829, no. 1, p. 11, 2016. [find](https://scholar.google.com/scholar?q=A%2E+A%2E+Chael%2C+M%2E+D%2E+Johnson%2C+R%2E+Narayan%2C+S%2E+S%2E+Doeleman%2C+J%2E+F%2E+Wardle%2C+and+K%2E+L%2E+Bouman%2C+%E2%80%9CHigh%2Dresolution+linear+polarimetric+imaging+for+the+event+horizon+telescope%2C%E2%80%9D+The+Astrophysical+Journal%2C+vol%2E+8)
8. P. F. Dubois, K. Hinsen, and J. Hugunin, “Numerical Python,” Computers in Physics, vol. 10, no. 3, pp. 262–267, 1996. [find](https://scholar.google.com/scholar?q=P%2E+F%2E+Dubois%2C+K%2E+Hinsen%2C+and+J%2E+Hugunin%2C+%E2%80%9CNumerical+Python%2C%E2%80%9D+Computers+in+Physics%2C+vol%2E+10%2C+no%2E+3%2C+pp%2E+262%E2%80%93267%2C+1996%2E)
9. D. Ascher, P. F. Dubois, K. Hinsen, J. Hugunin, and T. E. Oliphant, “An open source project: Numerical Python,” 2001. [find](https://scholar.google.com/scholar?q=D%2E+Ascher%2C+P%2E+F%2E+Dubois%2C+K%2E+Hinsen%2C+J%2E+Hugunin%2C+and+T%2E+E%2E+Oliphant%2C+%E2%80%9CAn+open+source+project%3A+Numerical+Python%2C%E2%80%9D+2001%2E)
10. T.-Y. Yang, G. Furnish, and P. F. Dubois, E. Gouillart, T. Yu, and the scikit-image con-“Steering object-oriented scientific computa-tributors, “scikit-image: image processing in tions,” in Proceedings of TOOLS USA 97. In-Python,” PeerJ, vol. 2, p. e453, 2014. ternational Conference on Technology of… [find](https://scholar.google.com/scholar?q=T%2E%2DY%2E+Yang%2C+G%2E+Furnish%2C+and+P%2E+F%2E+Dubois%2C+E%2E+Gouillart%2C+T%2E+Yu%2C+and+the+scikit%2Dimage+con%2D%E2%80%9CSteering+object%2Doriented+scientific+computa%2Dtributors%2C+%E2%80%9Cscikit%2Dimage%3A+image+processing+in+tions%2C%E2%80%9D+in+Proceeding)
11. P. Greenfield, J. T. Miller, J. Hsu, and R. L. Science & Engineering, vol. 13, no. 2, pp. 22– White, “numarray: A new scientific array pack-30, 2011. age for Python,” PyCon DC, 2003. [19] Q. Wang, X. Zhang, Y. Zhang, and Q. Yi, [find](https://scholar.google.com/scholar?q=P%2E+Greenfield%2C+J%2E+T%2E+Miller%2C+J%2E+Hsu%2C+and+R%2E+L%2E+Science+%26+Engineering%2C+vol%2E+13%2C+no%2E+2%2C+pp%2E+22%E2%80%93+White%2C+%E2%80%9Cnumarray%3A+A+new+scientific+array+pack%2D30%2C+2011%2E+age+for+Python%2C%E2%80%9D+PyCon+DC%2C+2003%2E+%5B19%5D+Q%2E+Wang%2C+X%2E+)
12. T. E. Oliphant, Guide to NumPy. Trelgol Pub-“Augem: automatically generate high perfor-lishing USA, 1st ed., 2006. mance dense linear algebra kernels on x86 cpus,” in SC’13: Proceedings of the International Con-[13] P. Virtanen, R. Gommers, T. E. Oliphant, ference on High Performance Computing, Net-… [find](https://scholar.google.com/scholar?q=T%2E+E%2E+Oliphant%2C+Guide+to+NumPy%2E+Trelgol+Pub%2D%E2%80%9CAugem%3A+automatically+generate+high+perfor%2Dlishing+USA%2C+1st+ed%2E%2C+2006%2E+mance+dense+linear+algebra+kernels+on+x86+cpus%2C%E2%80%9D+in+SC%E2%80%9913%3A+Proceedings+of+the+Interna)
13. J. D. Hunter, “Matplotlib: A 2D graphics envi- [22] T. Kluyver, B. Ragan-Kelley, F. Pérez, ronment,” Computing in Science & Engineering, B. Granger, M. Bussonnier, J. Frederic, K. Kel-vol. 9, no. 3, pp. 90–95, 2007. ley, J. Hamrick, J. Grout, S. Corlay, P. Ivanov, D. Avila, S. Abdalla, and C. Willi… [find](https://scholar.google.com/scholar?q=J%2E+D%2E+Hunter%2C+%E2%80%9CMatplotlib%3A+A+2D+graphics+envi%2D+%5B22%5D+T%2E+Kluyver%2C+B%2E+Ragan%2DKelley%2C+F%2E+Pe%CC%81rez%2C+ronment%2C%E2%80%9D+Computing+in+Science+%26+Engineering%2C+B%2E+Granger%2C+M%2E+Bussonnier%2C+J%2E+Frederic%2C+K%2E+Kel%2Dvol%2E+9%2C+no%2E+3%2C+)
14. W. McKinney, “Data structures for statistical Notebooks—a publishing format for repro-computing in Python,” in Proceedings of the 9th ducible computational workflows,” in Position-Python in Science Conference (S. van der Walt ing and Power in Academic Publishing: Play-and J. Millman, eds.), pp. 51 –… [find](https://scholar.google.com/scholar?q=W%2E+McKinney%2C+%E2%80%9CData+structures+for+statistical+Notebooks%E2%80%94a+publishing+format+for+repro%2Dcomputing+in+Python%2C%E2%80%9D+in+Proceedings+of+the+9th+ducible+computational+workflows%2C%E2%80%9D+in+Position%2DPython+in+Science+Co)
15. F. Pedregosa, G. Varoquaux, A. Gramfort, B. Schmidt, eds.), pp. 87–90, IOS Press, 2016. V. Michel, B. Thirion, O. Grisel, M. Blondel, P. Prettenhofer, R. Weiss, V. Dubourg, J. Van- [23] A. A. Hagberg, D. A. Schult, and P. J. Swart, “Exploring network structure, dynamics, and derplas, A. Passos, D. C… [find](https://scholar.google.com/scholar?q=F%2E+Pedregosa%2C+G%2E+Varoquaux%2C+A%2E+Gramfort%2C+B%2E+Schmidt%2C+eds%2E%29%2C+pp%2E+87%E2%80%9390%2C+IOS+Press%2C+2016%2E+V%2E+Michel%2C+B%2E+Thirion%2C+O%2E+Grisel%2C+M%2E+Blondel%2C+P%2E+Prettenhofer%2C+R%2E+Weiss%2C+V%2E+Dubourg%2C+J%2E+Van%2D+%5B23%5D+A%2E+A%2E+Hagberg%2C)
16. S. van der Walt, J. L. Schönberger, J. Nunez- [24] Astropy Collaboration, T. P. Robitaille, E. J. Iglesias, F. Boulogne, J. D. Warner, N. Yager, Tollerud, P. Greenfield, M. Droettboom, E. Bray, T. Aldcroft, M. Davis, A. Ginsburg, A. M. Price-Whelan, W. E. Kerzendorf, A. Con-ley, N. Crighton, K. Bar… [find](https://scholar.google.com/scholar?q=S%2E+van+der+Walt%2C+J%2E+L%2E+Scho%CC%88nberger%2C+J%2E+Nunez%2D+%5B24%5D+Astropy+Collaboration%2C+T%2E+P%2E+Robitaille%2C+E%2E+J%2E+Iglesias%2C+F%2E+Boulogne%2C+J%2E+D%2E+Warner%2C+N%2E+Yager%2C+Tollerud%2C+P%2E+Greenfield%2C+M%2E+Droettboom%2C+E%2E+Bray%2C+T%2E+Al) [our card](https://md.research.elamur.ai/free/en/papers/abadi-2016-tensorflow-large-scale-machine-learning/)
