NumPy基础-结构化数组(三)

记录数组

作为一个可选的便利,NumPy提供了ndarray子类,该子类允许按属性而不是仅按索引访问结构化数组的字段。记录数组使用特殊的数据类型,该数据类型允许按属性访问从数组获得的结构化标量上的字段。numpy.rec模块提供了从各种对象创建recarrays的函数。

创建记录数组最简答的方法是使用numpy.rec.array:


NumPy基础-结构化数组(三)_第1张图片

numpy.rec.array可以将各种参数转换为记录数组,包括结构化数组:


可以使用适当的视图获取结构化数组的记录数组例如:


为了方便起见,将ndarray作为类型查看numpy,recarray将自动转换为numpy.record数据类型,因此可以将dtype排除在视图之外:


要返回普通的ndarray,必须同时重置dtype和type。如果记录器不是结构化类型的异常情况,我们可以这么做:


如果字段具有结构化类型,则通过索引或属性访问的记录数组字段返回记录数组,否则返回为普通的ndarray。


NumPy基础-结构化数组(三)_第2张图片

如果字段与ndarray属性具有相同的名称,则ndarray属性具有优先权,此类字段无法通过属性访问,但仍然可以通过索引访问。

Recarray辅助函数

用于操作结构化数组的实用程序。

将新字段添加到现有数组

字段的名称由名称参数给出,对应的值由数据参数给出,如果附加了单个字段,则name、data和dtypes不必是列表,而只需是值。

应用功能‘func’ 作为结构化数组中各个字段的简化

这类似于沿轴应用,但将结构化数组的字段视为额外的轴。首先将所有字段都按照类型提升规则换换为通用类型。然后再应用于字段的dtype。示例:


NumPy基础-结构化数组(三)_第3张图片

通过字段名称将值从一个结构化数组分配给另一个

通常,将一个结构化数组分配给另一个“按位置”复制字段,这意味着src中的第一个字段将被复制到dst的第一个字段,依此类推,与字段名称无关。

相反,此函数按字段名进行复制,这样dst中的字段就从src中同名的字段进行分配,这将递归地应用于嵌套结构。

沿着给定键在结构化数组中查找重复项

NumPy基础-结构化数组(三)_第4张图片

展平结构化数据类型描述

返回一个字典,其中的字段索引了其父字段的列表

此功能用于简化对嵌套在其它字段中的字段的访问


NumPy基础-结构化数组(三)_第5张图片

以元组形式返回输入数据类型的字段名称


NumPy基础-结构化数组(三)_第6张图片

以元组形式返回输入数据类型的字段名称,嵌套的结构预先被扁平化

NumPy基础-结构化数组(三)_第7张图片

如果你想学习Python,但是找不到学习路径和资源,欢迎来指尖编程。

指尖编程第二届编程赛马上就要开始啦!赶紧上指尖编程报名赢取好礼吧!

你可能感兴趣的:(NumPy基础-结构化数组(三))