对于我的特殊情况而言,值得一提的是对称矩阵,但应该更普遍地回答这个问题。
存储未压缩二维矩阵的最佳文件格式是什么?
数据挖掘
数据格式
2022-02-11 09:20:36
3个回答
最兼容的格式肯定是 CSV/TSV。它是文本,您通常可以使用您正在使用的软件包即时对其进行 Gzip 压缩。没有广泛的标准化格式用于存储矩阵数组数据。Matlab 有它的 *.mat 文件,NumPy 有 *.npz,Stata 和 SAS 有自己的,......最好只使用明文文件。
如果矩阵是对称的,如果它非常大或者会有很多,你可以通过只存储它的下(或上)三角形部分来节省 50% 的空间需求。如果您选择这样做,同样,没有被广泛接受的格式。只需先存储形状,然后再存储扁平的一维数据。
我会选择.csv,因为它被普遍接受并且可以很容易地用不同的编程语言阅读。此外,您可以简单地使用办公软件打开它。如果您仅在 Python 中使用矩阵,我还推荐Pickle 库,它以.p格式编写矩阵,并且可以通过简单的加载函数在 Python 中轻松读取。
由于回车/换行 (CR/LF)可能会因系统而异,因此我建议将矩阵“内联”或以带有短标题的光栅样式存储,以指定您的约定、版本号(您可能会更改您的请稍后注意,并增加版本)等,至少是矩阵大小,其余部分为某种文本格式(CSV,TSV)。这类似于在便携式灰度图或位图图像格式中所做的。
我用它来存储文本滤波器组系数。
一个最小的例子可能是:
2,3,0.1,1.2,2.3,3.4,4.5,5.6对于矩阵:
但是您可以使用例如
#2,#3,0.1,1.2,2.3,3.4,4.5,5.6
让外星人(想想金色的先驱牌匾)了解前两个整数是“不同的”,并提供有关如何阅读以下数字的提示。使用方阵(典型的对称矩阵),这更有趣,因为您只需要一个标题编号#n(侧面),敏锐的读者会看到剩余的数字在数量。
您还可以查看其他矩阵存储方案,如果您的矩阵是稀疏的,压缩行存储 (CRS)。