如何在 Python 中将 NumPy 数组转换为字典?
本教程提供了一个分步指南,介绍如何使用 Python 将 NumPy 数组转换为字典。在 NumPy 中,数组本质上是一个元素表,这些元素通常是数字,并且共享相同的数据类型。它由一个正整数元组索引,数组的维度数称为其秩。每个维度上的数组大小由一个称为数组形状的整数元组定义。NumPy 数组类称为ndarray,其元素可以通过使用方括号访问。可以使用嵌套 Python 列表来初始化 NumPy 数组。
在 Python 中将 NumPy 数组转换为字典在您需要对数组执行某些操作(例如排序或搜索)并需要字典作为输入时非常有用。生成的字典将具有对应于数组元素索引的键,以及对应于数组元素本身的值。
借助本教程中提供的分步说明,您将能够轻松地将 NumPy 数组转换为 Python 中的字典。
将 NumPy 数组转换为字典的方法涉及三个主要步骤 -
第一步是使用 flatten 函数创建一个数组的副本,该副本折叠成一个维度。当我们希望顺序访问数组的每个元素时,这很有用。
第二步是使用 enumerate 函数,该函数会自动为列表中的每个项目生成一个计数器或索引。默认情况下,计数器或索引从 0 开始,但如果需要,我们可以指定不同的起始值。在这种情况下,计数器或索引对应于字典的键。
最后,我们使用 dict 函数将具有枚举索引的扁平化数组转换为字典。生成的字典将具有对应于扁平化数组索引的键,以及对应于数组元素的值。
现在让我们关注代码示例,在该示例中我们将 NumPy 数组转换为 Python 中的字典。
示例 1:将 NumPy 数组转换为字典
此代码创建了一个 3×3 的整数 NumPy 数组,然后使用 dict 和 enumerate 函数将其转换为字典。生成的字典具有对应于扁平化数组索引的键,以及对应于数组元素的值。然后,我们打印原始数组和生成的字典以验证转换。
请考虑以下所示代码。
# importing required libraries import numpy as np # creating a numpy array array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # convert numpy array to dictionary d = dict(enumerate(array.flatten(), 1)) # print numpy array print(array) print(type(array)) # print dictionary print(d) print(type(d))
要运行以上代码,我们需要运行以下所示命令。
python3 main.py
输出
在终端中运行以上命令后,我们将获得以下输出
[[1 2 3] [4 5 6] [7 8 9]] <class 'numpy.ndarray'> {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9} <class 'dict'>
示例 2
在此版本的代码中,我们使用 enumerate 函数为 NumPy 数组的每一行创建键值对。生成的字典具有键 1、2 和 3(对应于行索引加 1)以及值 [1, 2, 3]、[4, 5, 6] 和 [7, 8, 9]。
然后,我们打印原始 NumPy 数组和生成的字典以验证转换。
请考虑以下所示代码。
# importing required libraries import numpy as np # creating a numpy array array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # convert numpy array to dictionary d = dict(enumerate(array, 1)) # print numpy array print(array) print(type(array)) # print dictionary print(d) print(type(d))
输出
[[1 2 3] [4 5 6] [7 8 9]] <class 'numpy.ndarray'> {1: array([1, 2, 3]), 2: array([4, 5, 6]), 3: array([7, 8, 9])} <class 'dict'>
结论
总之,可以使用多种方法轻松地将 NumPy 数组转换为 Python 中的字典。最简单的方法是将 dict() 函数与 enumerate() 函数和 NumPy 数组的 flatten() 方法结合使用。
另一种方法是使用字典推导式迭代数组的行,并根据行索引和行本身创建键值对。这些方法允许我们将 NumPy 数组表示为字典,这对于需要字典数据结构的各种应用程序很有用。
借助本教程中提供的示例,您应该能够轻松地将 NumPy 数组转换为 Python 代码中的字典。