Top Python Libraries

Top Python Libraries

Python Scientific Computing: Quick Data Processing with NumPy (Practical Data Analysis 2)

Discover the power of NumPy in Python for efficient scientific computing and data analysis, from array manipulation to statistical functions.

Meng Li's avatar
Meng Li
Nov 10, 2024
∙ Paid
Python For NumPy For Absolute Beginners 2023

Welcome to the "Practical Data Analysis" Series

Table of Contents

Table of Contents

Meng Li
·
July 12, 2024
Read full story

Today, let me introduce an important third-party library in Python: NumPy.

Not only is it one of the most used libraries in Python, but it’s also the foundation for other data science libraries like SciPy and Pandas.

NumPy provides data structures that are more advanced and efficient than Python’s native options. In fact, its data structures form the backbone of data analysis in Python.

Previously, I discussed the Python list structure, which is essentially an array structure. One of NumPy’s key data types is related to arrays, so why do we need an additional array structure from a third-party library?

In standard Python, lists are used to store array values. However, since list elements can be any type of object, they store object references rather than values directly. Even though Python hides pointers from us, lists are arrays of pointers.

If I want to store a simple array [0,1,2], I would need three-pointers and three integer objects, which is memory-inefficient and time-consuming for Python.

Make Python Scientific Computation More Efficient with NumPy

Why use NumPy arrays instead of Python lists?

In a list, elements are stored in scattered memory locations, whereas a NumPy array is stored in a contiguous block of memory. This means NumPy arrays can be traversed faster since they don’t need to look up memory addresses, saving computational resources.

Additionally, during memory access, the cache loads blocks of bytes from RAM to the CPU registers. Since NumPy stores data continuously in memory, it utilizes vectorized instructions on modern CPUs to load multiple consecutive floating-point numbers directly.

Moreover, matrix computations in NumPy can use multithreading to fully leverage multi-core CPUs, significantly boosting performance.

Beyond using NumPy, there are techniques to enhance memory and computation efficiency. An essential rule is to avoid implicit copying by using in-place operations. For example, if I want to double a value x, it’s faster to write `x *= 2` than `y = x * 2`, potentially doubling the speed.

If NumPy is so powerful, where should you start?

Two key objects in NumPy are ndarray (N-dimensional array object) for multidimensional arrays and ufunc (universal function object) for array operations.

Let me walk you through each.

User's avatar

Continue reading this post for free, courtesy of Meng Li.

Or purchase a paid subscription.
© 2026 Meng Li · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture