In this Python article, I will explain how to convert Python dict to an array with the most appropriate method present with examples.
To convert the Python dict to an array, we can use the np.array() function or array.array() function. Whether we want an array of the Python dictionary values, keys, or both as a key-value pair in Python, we can achieve it by using different functions like values(), keys(), and items() respectively with the array() function from both libraries.
Python Dict to an Array
Before knowing how to convert Python dict to an array, we should know what is meant by the terms used:
Python Dictionary: Also known as “Python dict”. A Python dictionary is an unordered data collection in a key-value pair format.
company = {"Apple": 5, "Facebook": 3, "Microsoft": 2}
Python NumPy Array: Unlike lists, NumPy arrays are homogeneous, meaning all elements are of the same type, a key feature that makes them suitable for mathematical operations.
import numpy as np
company = np.array(["Apple", "Facebook", "Microsoft"])
Now, let’s see some examples of how to convert a Python dict to an array:
Case 1: Python dict to array of values
To get only the Dictionary values to be stored or converted into an Array in Python NumPy, we can use the dict.values() function.
The dict.values() function returns a list of all the values from the dictionary in Python. And, we will convert the list into an array using np.array type casting method.
import numpy as np
state_capitals = {
"California": "Sacramento",
"Texas": "Austin",
"Florida": "Tallahassee",
"New York": "Albany",
"Illinois": "Springfield"
}
values_array = np.array(state_capitals.values())
print(type(values_array))
Output: The type() function confirms that the dictionary is converted into an array in Python.
<class 'numpy.ndarray'>
This way we can use the values() function with the np.array to convert a dictionary to array in Python.
Case 2: Python dict values to array
We can also use the list() function to create a list of dictionary values.
Note: The only difference between using and not using the list() function in Python is that the values() method of a dictionary returns a view object that displays a list of all the values in the Python dictionary. Wrapping this with list() converts it into a standard Python list.
import numpy as np
state_capitals = {
"California": "Sacramento",
"Texas": "Austin",
"Florida": "Tallahassee",
"New York": "Albany",
"Illinois": "Springfield"
}
values_array = np.array(list(state_capitals.values()))
print(type(values_array))
Output: The implementation of the code is given below:
<class 'numpy.ndarray'>
This way we can use the list function with the np.array() function to convert the Python dict to an array.
Case 3: Convert dict to array Python only keys
To get only the Dictionary keys to be stored or converted into an Array in Python NumPy, we can use the dict.key() function.
The keys() method of a dictionary returns a view object that displays a list of all the values in the Python dictionary.
import numpy as np
average_temperatures = {
"Miami": 77.0,
"Denver": 50.9,
"Seattle": 52.0,
"Atlanta": 61.4,
"Boston": 52.7
}
keys_array = np.array(list(average_temperatures.keys()))
print(type(keys_array))
Output: After the implementation of the Python code, the output we get is:
<class 'numpy.ndarray'>
This way we can use the np.array() with the keys() function to convert the Python dict to an array.
Case 4: Python dictionary to array
If both keys and values are essential, we can convert them into a structured NumPy array using the dict.items() function in Python.
The dict.items() function returns a Python list of tuples of key values of the dictionary.
import numpy as np
city_zip_codes = {
"Los Angeles": 90001,
"Chicago": 60601,
"Houston": 77001,
"Phoenix": 85001,
"Philadelphia": 19101
}
np_structured_array = np.array(list(city_zip_codes.items()))
print(type(np_structured_array))
Output: The implementation of the code is given below:
<class 'numpy.ndarray'>
The items() function with the numpy array() function, can be used to convert Python dict to an array.
Case 5: How to convert a dictionary to a 2D array in Python
Here, is how we can convert a Python dict to an array of 2 dimensions.
import numpy as np
presidents_terms = {
"George Washington": [1789, 1797],
"Abraham Lincoln": [1861, 1865],
"Theodore Roosevelt": [1901, 1909],
"John F. Kennedy": [1961, 1963],
"Barack Obama": [2009, 2017]
}
two_d_array = np.array(list(presidents_terms.values()))
print(np.ndim(two_d_array))
print(type(two_d_array))
Output: To check the array dimension we can use the np.ndim() function in Python.
2
<class 'numpy.ndarray'>
This way we can convert a Python dict to an array of 2nd dimension.
Case 6: Convert dictionary to array Python using array library
We can simply use the Python array library’s array() function to convert the dictionary into an array in Python.
The array module requires specifying a type code that defines the type of elements in the array. For example, ‘i‘ for integers, ‘f‘ for floating-point numbers, etc.
from array import array
inventory = {
"TV": 399.99,
"Laptop": 1099.99,
"Smartphone": 699.99
}
arr = array('f', inventory.values())
print(type(arr))
Output: The implementation of the code is given below with a screenshot:
<class 'array.array'>
Conclusion
Converting Python dict to an array, expands the possibilities for data manipulation and analysis, leveraging the power of NumPy’s efficient array operations. We have seen different use cases like using items(), values(), and keys() function with the np.array() function, etc in detail.
Now, the choice of the case depends on what the Python problem needs.
You may like to read:
- NumPy random number between two values in Python
- NumPy zeros in Python
- NumPy log in Python
- NumPy Read CSV with Header in Python
I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.