How to convert a NumPy array to a dictionary in Python?

Converting a NumPy array to a dictionary in Python is useful when you need dictionary operations like key-based lookups or when working with APIs that require dictionary inputs. This tutorial demonstrates multiple approaches to perform this conversion.

Understanding NumPy Arrays

A NumPy array is a table of elements (typically numbers) of the same data type, indexed by a tuple of positive integers. The ndarray class provides efficient storage and operations for multi-dimensional data.

Method 1: Converting Individual Elements to Dictionary

This approach flattens the array and creates a dictionary where keys are indices and values are array elements ?

import numpy as np

# Creating a 3x3 NumPy array
array = np.array([[1, 2, 3],
                  [4, 5, 6],
                  [7, 8, 9]])

# Convert numpy array to dictionary using enumerate and flatten
dictionary = dict(enumerate(array.flatten(), 1))

print("Original array:")
print(array)
print(f"Array type: {type(array)}")

print("\nResulting dictionary:")
print(dictionary)
print(f"Dictionary type: {type(dictionary)}")
Original array:
[[1 2 3]
 [4 5 6]
 [7 8 9]]
Array type: <class 'numpy.ndarray'>

Resulting dictionary:
{1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}
Dictionary type: <class 'dict'>

Method 2: Converting Rows to Dictionary

This method creates a dictionary where keys represent row indices and values are the corresponding rows ?

import numpy as np

# Creating a 3x3 NumPy array
array = np.array([[1, 2, 3],
                  [4, 5, 6],
                  [7, 8, 9]])

# Convert numpy array rows to dictionary
dictionary = dict(enumerate(array, 1))

print("Original array:")
print(array)

print("\nResulting dictionary:")
print(dictionary)
Original array:
[[1 2 3]
 [4 5 6]
 [7 8 9]]

Resulting dictionary:
{1: array([1, 2, 3]), 2: array([4, 5, 6]), 3: array([7, 8, 9])}

Method 3: Using Dictionary Comprehension

Dictionary comprehension provides a more Pythonic approach for creating dictionaries from arrays ?

import numpy as np

# Creating a 1D array
array_1d = np.array([10, 20, 30, 40, 50])

# Using dictionary comprehension
dictionary = {i: value for i, value in enumerate(array_1d)}

print("1D Array:", array_1d)
print("Dictionary:", dictionary)

# For 2D array with custom keys
array_2d = np.array([[1, 2], [3, 4], [5, 6]])
row_dict = {f'row_{i}': row.tolist() for i, row in enumerate(array_2d)}

print("\n2D Array:")
print(array_2d)
print("Row dictionary:", row_dict)
1D Array: [10 20 30 40 50]
Dictionary: {0: 10, 1: 20, 2: 30, 3: 40, 4: 50}

2D Array:
[[1 2]
 [3 4]
 [5 6]]
Row dictionary: {'row_0': [1, 2], 'row_1': [3, 4], 'row_2': [5, 6]}

Comparison of Methods

Method Use Case Key Type Value Type
enumerate + flatten Individual elements Integer indices Array elements
enumerate (no flatten) Row-based mapping Row indices NumPy arrays
Dictionary comprehension Custom keys/values Flexible Flexible

Conclusion

Converting NumPy arrays to dictionaries can be accomplished using enumerate() with flatten() for element-wise mapping, enumerate() alone for row-wise mapping, or dictionary comprehension for custom transformations. Choose the method based on whether you need individual elements or grouped data as dictionary values.

Updated on: 2026-03-27T01:19:08+05:30

9K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements