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

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

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

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

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

将NumPy数组转换为字典的方法包含三个主要步骤−

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

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

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

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

示例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'>

结论

总之,在Python中将NumPy数组转换为字典可以使用多种方法来轻松实现。最简单的方法是使用dict()函数,结合enumerate()函数和NumPy数组的flatten()方法。

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

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程