
Travis Oliphant: scientist, software developer, entrepreneur and now, subject of a documentary.Credit: Christi Norris/BYU
In 2005, Travis Oliphant was an information scientist at Brigham Young University in Utah, focusing on medical and biological imaging. It was during this time that he started developing NumPy, a library now central to scientific computing in the Python programming language.
Oliphant discovered Python while pursuing his graduate studies in 1998 and, as he mentioned in the Guide to NumPy (2006), he “quickly fell in love” with it. He noted, “That’s a remarkable statement to make about a programming language,” and humorously added that if he hadn’t met others who felt the same, he might have doubted his sanity.
He highlighted two appealing features of Python: its readability — or “executable English,” as he calls it — and its extensibility. Oliphant significantly contributed to the language’s development by creating two of its essential extensions: NumPy and SciPy.
With hundreds of millions of downloads each month, NumPy streamlines the handling of complex numeric arrays, which makes mathematical computations vital for scientific work — including artificial intelligence (AI) — manageable within Python. This explains why Python has become the preferred language in scientific circles. As highlighted in a 2020 Nature article1, “NumPy underpins almost every Python library that does scientific or numerical computation,” including SciPy, Matplotlib, pandas, scikit-learn, and scikit-image. SciPy itself is a collection of scientific algorithms created largely by Oliphant.
Now serving as a technology entrepreneur and Chief AI Scientist at OpenTeams in Austin, Texas, Oliphant’s journey has transformed him from scientist to software developer to executive and to venture capitalist — all thanks to NumPy, which he describes as the “driving force” of his life.
Recently, Oliphant has taken his story to the screen. Last month, CultRepo, a YouTube channel that explores the human stories behind technology, debuted a documentary about the programming language and its history. The official premiere for Python: The Documentary occurred at PyCon Greece, a conference dedicated to Python, in Athens on August 28.
Oliphant stars in the 84-minute film alongside Guido van Rossum, who created the language in late 1989. A separate featurette also released last month, focuses on NumPy and SciPy, featuring Oliphant prominently.
In honor of the 20th anniversary of NumPy’s creation, Nature asked Oliphant to reflect on two decades of advancements in array arithmetic.
Why did you develop NumPy?
NumPy was born from the merger of two earlier array libraries in the Python ecosystem. When I began using Python in 1998, there was already a library called Numeric, created in 1995 by Jim Hugunin, a graduate student at MIT. He was an innovative technologist who designed a remarkable ‘while-loop’ to facilitate mathematics with large arrays of numbers.
Around 2000, computer scientists began developing a newer library called NumArray to replace Numeric, this time offering more advanced querying and a wider variety of data types. However, I saw a division within the community, as SciPy was only compatible with Numeric while others were creating libraries strictly for NumArray. A notable example was ndimage, which focused on image processing — a significant area of interest for me and my graduate studies — but it worked solely with NumArray.
This fragmented environment inspired me to spend a year working on NumPy, aiming to combine NumArray and Numeric to simplify things for scientists using Python. I needed this solution myself as well, as I was also a user.
What were some key innovations?
Reflecting on my work with NumPy, a few standout features come to mind. Firstly, the combination of two array structures was significant. I also focused heavily on maintaining backward compatibility. This ensured that users of both NumArray and Numeric could transition to NumPy with minimal adjustments to their code.
Another key innovation involved ‘typing.’ Python employs ‘dynamic typing,’ allowing variables to represent different object types. For example, a variable can start as an integer and later be reassigned as a string of text. However, the objects still possess a specific type. In NumPy, I introduced the concept of data types (dtype), specifying what data is inside each array — such as a 32-bit float or an 8-bit integer.
Additionally, I developed universal functions that let users perform operations on arrays of differing shapes. For instance, adding two 3 × 3 arrays is straightforward, but what if you want to add a 1 × 3 array to a 3 × 3 array? We use a method called broadcasting, which treats the 1 × 3 array as if it were 3 × 3, permitting elementwise addition. NumPy made this broadcasting process easily accessible for all developers.
How has NumPy changed over 20 years?
The evolution of NumPy has been gradual. This slow progression is a byproduct of its success. With increased adoption comes the challenge of implementing changes without causing disruptions. Developing processes to manage these changes can also be costly.
A driving question for me has been how to financially support open-source projects. How can we establish companies and align their goals to foster innovation, funding, and development of open-source software?
This journey has led me from a scientist to a software developer, then a chief executive and venture capitalist, all intertwined with NumPy — a constant in my life. I still feel connected to its growth and success.
In 2018, I founded Quansight, a consulting firm focused on Python in Austin, followed by Quansight Labs, its public-benefit division in 2019. Ralf Gommers, a key maintainer of NumPy and SciPy, played an essential role in this journey. He has since become co-chief executive of Quansight Public Benefit Corporation — formerly Quansight Labs — alongside Tania Allard. Quansight now employs individuals who actively work on NumPy, SciPy, and Python, with funding sourced from grants, client projects, and investments.
I take pride in Quansight’s mission. I left academia in 2007 to explore entrepreneurship and figure out how to support NumPy and SciPy financially. Finally, I’ve established a company dedicated to compensating people for their contributions to these vital projects. It has been a journey filled with passion and learning.
Where does NumPy fall short?
While NumPy has many achievements, there are two significant areas where it fell behind early on, especially regarding AI development. First, it does not natively support graphics processing units (GPUs). Instead, it operates on CPUs, while modern machine learning relies heavily on GPUs for effective training. This transition to GPUs has powered recent breakthroughs, explaining NVIDIA’s success in the tech industry. Meanwhile, libraries like PyTorch and TensorFlow were built to work with GPUs from their inception. Due to its lack of native GPU support, NumPy has not been as useful in the AI sphere as it might have been.
Summary: This article highlights Travis Oliphant’s journey from an information scientist to a tech entrepreneur, underscoring his pivotal role in the development of NumPy, a critical library for scientific computing in Python. The piece discusses NumPy’s origins, innovations, evolution, and current relevance, including its shortcomings in the AI landscape due to a lack of GPU support. Oliphant’s recent appearance in a documentary about Python further showcases his contributions to the programming world.



