如何将NumPy数组转换为Python字典?

如何将NumPy数组转换为Python字典?

本教程提供了一个逐步指南,介绍如何使用Python将NumPy数组转换为字典。在NumPy中,数组本质上是元素的表格,通常为数字,并且共享相同的数据类型。它由正整数元组索引,并且数组的维度数称为其秩。每个维度沿着其方向的大小由一个整数元组定义,称为数组的形状。NumPy数组类称为 ndarray ,可以使用方括号访问其元素。使用嵌套Python列表可以实现初始化NumPy数组。

在Python中将NumPy数组转换为字典,当您需要对数组执行某些操作(例如排序或搜索)并需要字典作为输入时,可以非常有用。生成的字典将具有对应于数组元素的索引的键,以及对应于数组元素本身的值。

借助本教程提供的逐步说明,您将能够轻松将NumPy数组转换为Python中的字典。

将NumPy数组转换为字典的方法涉及三个主要步骤 –

  • 第一步是使用扁平化函数来创建折叠为单个维度的数组副本。当我们想要逐个访问数组的每个元素时,这非常有用。

  • 第二步是使用enumerate函数,它会自动为列表中的每个项目生成计数器或索引。默认情况下,计数器或索引从0开始,但如果需要,可以指定不同的起始值。在这种情况下,计数器或索引对应于字典的键。

  • 最后,我们使用dict函数将带有枚举索引的扁平化数组转换为字典。生成的字典将具有对应于扁平化数组的索引的键,并具有对应于数组元素的值。

现在,让我们专注于代码示例,其中我们将将NumPy数组转换为Python中的字典。

示例1:将NumPy数组转换为字典

此代码创建一个包含整数的3×3 NumPy数组,然后使用dict和enumerate函数将其转换为字典。生成的字典的键对应于扁平化数组的索引,其值对应于数组元素。然后,我们打印原始数组和生成的字典,以验证转换。

考虑下面显示的代码。

# 导入必要的库
import numpy as np

# 创建NumPy数组
array = np.array([[1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]])

# 将NumPy数组转换为字典
d = dict(enumerate(array.flatten(), 1))

# 打印NumPy数组
print(array)
print(type(array))

# 打印字典
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数组和生成的字典,以验证转换。

考虑下面显示的代码。

# 导入所需库
import numpy as np

# 创建一个numpy数组
array = np.array([[1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]])

# 把numpy数组转化为字典
d = dict(enumerate(array, 1))

# 打印numpy数组
print(array)
print(type(array))

# 打印字典
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'>

结论

综上所述,在Python中将NumPy数组转换为字典可以通过多种方法轻松完成。最简单的方法是使用dict()函数结合enumerate()函数和NumPy数组的flatten()方法。

另一种方法是使用字典生成式遍历数组的行,并根据行索引和行本身创建键值对。这些方法允许我们将NumPy数组表示为字典,这对于需要字典数据结构的各种应用程序都很有用。

通过本教程提供的示例,您应该能够轻松地在Python代码中将NumPy数组转换为字典。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程