如何理解这段关于 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)
以下代码片段来自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)