NumericTable 对象的二进制文件读写。
文件布局(所有的多字节数值均通过 NetworkByteOrderBuffer 编码为大端/网络字节序):
[magic] 固定的ASCII魔数 "NVTABLE"
[version] Int32,当前的格式版本号 NumericTableBinary.FORMAT_VERSION
[flags] Byte,bit0 = 载荷数据是否采用 gzip 压缩
[nsamples] Int32,样本数量
[nfeatures] Int32,特征列数量
[nlabels] Int32,标签列数量
[name] 长度前缀的UTF8字符串,表名(可以为空)
[description] 长度前缀的UTF8字符串,表的描述文本(可以为空)
[rowNames] 行名数组(数量 + 逐个长度前缀的UTF8字符串)
[featureNames] 特征列名数组
[labelNames] 标签列名数组
[features] 长度前缀的字节块,特征矩阵按行主序摊平之后的 Double 大端数据
[labels] 长度前缀的字节块,标签矩阵按行主序摊平之后的 Double 大端数据
其中 gzip 压缩只作用于 features 与 labels 这两个载荷块,文件头与元数据 始终保持明文,因此可以在不完整解析文件的情况下快速识别格式与压缩状态。