Hey! If you love Python and building Python apps as much as I do, let's connect on Twitter or LinkedIn. I talk about this stuff all the time!

Getting Length of Numpy Array

In this article, we’ll delve into the world of NumPy arrays and explore how to get their length. You’ll learn why len() behaves differently with NumPy arrays compared to regular Python lists or stri …


Updated May 8, 2023

In this article, we’ll delve into the world of NumPy arrays and explore how to get their length. You’ll learn why len() behaves differently with NumPy arrays compared to regular Python lists or strings.

Definition of the Concept

A NumPy array is a powerful data structure in Python that stores homogeneous collections of elements. It’s a multi-dimensional, mutable container that’s widely used in scientific computing and data analysis. The length of a NumPy array refers to its total number of elements along all axes.

Step-by-Step Explanation: Why len() Behaves Differently on NumPy Arrays?

When you use the built-in len() function with a regular Python list or string, it returns the total count of elements:

my_list = [1, 2, 3]
print(len(my_list))  # Output: 3

my_string = "Hello"
print(len(my_string))  # Output: 5

However, when you apply len() to a NumPy array, it returns the total number of elements along all axes:

import numpy as np

my_array = np.array([[1, 2], [3, 4]])
print(len(my_array))  # Output: 4 (not 2!)

This seemingly counterintuitive behavior arises from NumPy’s ability to store multi-dimensional data structures. When you create a 2x2 array using np.array([[1, 2], [3, 4]]), it stores four elements in total: [1, 2, 3, 4]. The len() function, unaware of the underlying NumPy structure, simply returns the count of all elements.

Using shape and size to Get the Length

To get the length of a NumPy array without relying on len(), you can use the shape attribute:

my_array = np.array([[1, 2], [3, 4]])
print(my_array.shape)  # Output: (2, 2)

However, this will give you the shape of the array along all axes. If you want to get the total count of elements, use the size attribute:

my_array = np.array([[1, 2], [3, 4]])
print(my_array.size)  # Output: 4

Note that size is equivalent to using len() on a NumPy array.

Conclusion

In this article, we explored why len() behaves differently with NumPy arrays compared to regular Python lists or strings. We saw how the shape and size attributes can be used to get the length of a NumPy array without relying on len(). This comprehensive guide should provide you with a solid understanding of working with NumPy arrays in Python.

Stay up to date on the latest in Python, AI, and Data Science

Intuit Mailchimp