我的团队正在实现一个数据库来存储机器学习数据集。目前,我们使用lz+zstd压缩 * numpy数组 *(作为整形的一维数组);然后,使用_pickle+lz+zstd压缩 * 包含字符串值的numpy数组 *(作为对象)。我们有点担心这种存储选择的兼容性,想知道Java/Scala、C/C++或其他可能共享相同信息的最终客户端(Julia,R)是否可以轻松访问它。
numpy数组中的原始二进制信息在这个意义上是通用的,还是任意的?
组合两个压缩机的选择是在速度对空间基准之后做出的。
zpf6vheq1#
根据numpy.lib.格式.npy格式是NumPy中的标准二进制文件格式,用于在磁盘上持久化单个任意NumPy数组。该格式存储了正确重建数组所需的所有形状和dtype信息,即使在具有不同体系结构的另一台机器上也是如此。该格式的设计尽可能简单,同时实现其有限的目标。因此,numpy数组格式是通用且稳定的。据我所知,C++、Julia和R都有可以读取numpy文件的库。
1条答案
按热度按时间zpf6vheq1#
根据numpy.lib.格式
.npy格式是NumPy中的标准二进制文件格式,用于在磁盘上持久化单个任意NumPy数组。该格式存储了正确重建数组所需的所有形状和dtype信息,即使在具有不同体系结构的另一台机器上也是如此。该格式的设计尽可能简单,同时实现其有限的目标。
因此,numpy数组格式是通用且稳定的。
据我所知,C++、Julia和R都有可以读取numpy文件的库。