表实现详细信息#

本页提供了 Table 类实现,特别突出了内部数据存储体系结构。这是针对那些对优化使用感兴趣的开发人员和/或用户 Table 班级。

下图说明了 Table 班级。基本数据容器是单个列对象的有序字典,维护为 columns 属性。正是通过这个容器来管理和访问列。

../_images/table_architecture.png

每个 Column (或 MaskedColumn )对象是一个 numpy.ndarray (或 numpy.ma.MaskedArray )子类,并且是其数据的唯一所有者。将表作为单独的列进行维护可以极大地简化表管理。它还使添加或移除列等操作比使用 numpy 结构化数组容器。

如下所示,a Row 对象对应于表中的一行。这个 Row 对象在任何时候都不创建整行的视图。相反,它管理访问(例如。, row['a'] )通过引用父表的适当元素来动态执行。

../_images/table_row.png

在某些情况下,需要具有整行的静态副本。这一点可以通过 as_void() 方法,该方法创建并返回 numpy.voidnumpy.ma.mvoid 使用原始数据的副本创建。