如何在 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 代码中的字典。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP