容器书籍621容器的高维数据模型

文章来源:一氧化碳中毒   发布时间:2021-10-9 14:38:33   点击数:
  湖南白癜风医院 http://pf.39.net/bdfyy/zjdy/171025/5789682.html

容器(Conatainer)是一种嵌套定义的数据结构。既可以容纳子容器,也可以直接容纳相同类型的多个数据。

classContainer(object):""""""def__init__(self,name,superior=None):self.name=nameself.default_name=frameself.setFrame(self.default_name,Frame())#framedefgetFrame(self,name):returnself.__getattribute__(name)defsetFrame(self,name,frame=None):ifframeandnotisinstance(frame,Frame):raiseValueError(frameisnotaFrame)ifframeisNone:frame=Frame(name=name)self.__setattr__(name,frame)frame.name=name

上述Python代码定义了一个基本的Container容器。该容器具有一个字符串类型的成员变量name,用来表示该容器的名称。成员变量frame定义了容器数据,该变量的名字默认是“frame”,该变量的默认类型是Frame框架类型。

基本的Container容器初始化需要两个参数,第一是name,即该容器的名称;第二个是superrior,是该容器的父容器。默认情况下,父容器为空,即没有父容器,或者说该容器自身为根节点。基本的Container容器没有限定子容器变量children,该变量children在树容器TreeContainer中定义。基本的Container容器可以是树容器,也可以是FlowContainer流容器等。

容器本身与一个唯一的名字(name)相关联,这也体现了一种“索引”的设计理念。在嵌套容器中查找某一个容器,就可以通过名字来唯一定位该容器。

容器数据(默认名字是frame)的类型是Frame,可以存储同样类型的数据,在逻辑上是一个二维表。

容器数据类(Frame)用来承载高维数据。高维数据结构可以从多个角度进行理解:

1)从高维数据空间的角度看,高维数据表现为一个高维数据空间的若干数据点。形象的例子是三维空间性别,年龄,身高中的一个点,每个点都对应着三维空间中的值。例如性别维度具有三个值:男,女,保密。年龄维度和身高维度则各对应着一个数值。高维数据空间的维度一般远大于3,几百甚至几千维的高维数据在大数据处理中也是常见的。

2)从面向对象的角度看,高维数据表现为一个对象的多个属性。上面的例子中,性别,年龄,身高是一个表示某对象的三元组,该对象的第一个元素的属性名是“性别”,属性值是三元组的第一个值,该对象的第二个元素的属性名是“年龄”,属性值是三元组的第二个值,该对象的第三个元素的属性名是“身高”,属性值是三元组的第三个值。同样地,真实大数据的属性值也是非常多的。

3)从数据库二维表的角度看,容器的高维数据模型表现为一张二维表中的一条记录。上面的例子中,性别,年龄,身高是表示某数据表中的一条记录的三元组,该记录的第一个字段的名称是“性别”,字段的值是三元组的第一个值,该记录的第二个字段的名称是“年龄”,字段的值是三元组的第二个值,该记录的第三个字段的名称是“身高”,字段的值是三元组的第三个值。同样地,真实大数据的数据表中的字段值也是远多于三个的。

我们定义的容器数据类型Frame,主要是从面向对象和数据库记录的角度出发进行定义,因此使用了Pandas的DataFrame的数据结构来存储。Python语言中的Numpy使用了ndarray来定义一个d维n个数据的二维表,而Pandas则在Numpy的基础上定义了一维数据结构Series和二维数据结构DataFrame[55]。

classFrame(object):""""""def__init__(self,table=DataFrame(),name=):self.name=nameself.table=tableself.start=datetime.now()self.end=datetime.now()

上述代码定义了一个基本的容器数据结构Frame,该数据结构的table的类型是DataFrame,作为容器内部存储数据的类型,用来存放多个属性(维度)的数据。

[55]PandasDataFrame数据结构,

转载请注明:http://www.lwblm.com/bytj/12523.html
  • 上一篇文章:
  • 下一篇文章: 没有了