What is the preferred method to check for an empty array in NumPy?

In NumPy, checking if an array is empty is a common operation. NumPy is a powerful Python library for numerical computing that provides efficient array operations. There are several methods to check for empty arrays, each with different advantages depending on your use case.

Using numpy.size Attribute

The most preferred and efficient method is using the size attribute, which returns the total number of elements in the array ?

import numpy as np

# Creating an empty array
empty_array = np.array([])

# Creating a non-empty array  
data_array = np.array([1, 2, 3])

# Check if arrays are empty
print("Empty array size:", empty_array.size)
print("Is empty_array empty?", empty_array.size == 0)

print("Data array size:", data_array.size)  
print("Is data_array empty?", data_array.size == 0)
Empty array size: 0
Is empty_array empty? True
Data array size: 3
Is data_array empty? False

Using numpy.any() Method

The numpy.any() function returns False if the array is empty, since there are no elements to evaluate ?

import numpy as np

empty_array = np.array([])
data_array = np.array([0, 1, 2])

# Check using any() - returns False for empty arrays
print("Empty array any():", np.any(empty_array))
print("Data array any():", np.any(data_array))

# Use logical NOT to check if empty
print("Is empty_array empty?", not np.any(empty_array))
Empty array any(): False
Data array any(): True
Is empty_array empty? True

Using shape Attribute

The shape attribute returns a tuple containing array dimensions. Check if the first dimension is zero ?

import numpy as np

empty_array = np.array([])
matrix_array = np.array([[1, 2], [3, 4]])

print("Empty array shape:", empty_array.shape)
print("Matrix array shape:", matrix_array.shape)

# Check if first dimension is 0
print("Is empty_array empty?", empty_array.shape[0] == 0)
print("Is matrix_array empty?", matrix_array.shape[0] == 0)
Empty array shape: (0,)
Matrix array shape: (2, 2)
Is empty_array empty? True
Is matrix_array empty? False

Using len() Method

Convert the array to a list and check its length, though this is less efficient for large arrays ?

import numpy as np

empty_array = np.array([])
data_array = np.array([5, 10, 15])

# Convert to list and check length
print("Empty array as list length:", len(empty_array.tolist()))
print("Data array as list length:", len(data_array.tolist()))

print("Is empty_array empty?", len(empty_array.tolist()) == 0)
Empty array as list length: 0
Data array as list length: 3
Is empty_array empty? True

Comparison of Methods

Method Performance Readability Best For
array.size == 0 Fastest Excellent General use (recommended)
not np.any(array) Good Good When checking for any truthy values
array.shape[0] == 0 Good Good Multi-dimensional arrays
len(array.tolist()) == 0 Slowest Fair Avoid for performance

Conclusion

The preferred method to check for an empty NumPy array is array.size == 0 due to its efficiency and readability. Use array.shape[0] == 0 for multi-dimensional arrays when you need to check the first dimension specifically.

Updated on: 2026-03-26T22:23:20+05:30

23K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements