如何理解这段关于 Numpy.array() 数据类型的代码片段?

How to understand this code snippet about Numpy.array() datatype?

以下代码片段来自numpy的网页:

>>> x = np.array([(1,2),(3,4)],dtype=[('a','<i4'),('b','<i4')])

>>> x['a']
array([1, 3])

我不明白为什么 dtype 关键字参数采用上述形式以及为什么数组可以像 dict 一样被索引。

我不是 numpy 专家,所以我在这里可能有点偏离,但这是我的理解。

我们定义了一个结构化数据类型,其中包含两个命名字段 'a''b'。这两个字段都包含 32 位 (4 字节)。

这是与我们正在存储的数组关联的数据类型。因此,我们自定义数据类型中的每个元素的第一个字段 ('a') 来自数组中的第一个元素 (x[0]),第二个元素 ('b') 来自数组中的第二个元素数组 (x[1]).

如果我们查看第一个字段的所有值,x['a'] 我们得到一个数组 - [1,3].

如果我们查看第二个字段的所有值,x['b'] 我们会得到另一个数组,即第二个元素中的值 - [2,4].

我们可以让数组存储 3 个元素,但必须保持 2 字段结构。

x = np.array([(1,2), (3,4), (5,6)], dtype=[('a','<i4'), ('b','<i4')])

>>> x['a']
array([1, 3, 5], dtype=int32)