在梳理我的Numpy技能的同时,我遇到了结构化数组。
>>> import numpy as np
>>> person_data_def = [('name', 'S6'), ('height', 'f8'), ('weight', 'f8'), ('age', 'i8')]
>>> person_data_def
[('name', 'S6'), ('height', 'f8'), ('weight', 'f8'), ('age', 'i8')]
在这种情况下,S6
,f8
和i8
是什么?
答案 0 :(得分:1)
我认为您正在将事情混为一谈。
person_data_def不是结构化数组,而只是一个元组列表。但是,此列表用作结构化数组的类型。 从numpy文档改编示例得到
x = np.array([('Rex', 9, 81.0, 18), ('Fido', 3, 27.0, 20)], dtype=[('name', 'U10'), ('height', 'f8'), ('weight', 'f8'), ('age', 'i8')] )
x访问
x['name']
,它将为您提供array(['Rex', 'Fido'], dtype='<U10')
S6
,U10
,i8
等是数据类型,有点难以理解,但例如i4
指的是32位有符号整数(大小由数字标记)。
另外,您将看到的>
和<
区分小字节序和大字节序(计算机读取字节的方向)。但是我认为,如果未指定其他方式,则会自动设置它们。
有关数据类型的更多详细信息,请参见此处: https://numpy.org/doc/stable/reference/arrays.dtypes.html#arrays-dtypes-constructing