python/numpy中的数据压缩

tyl*_*ler 7 python linux numpy scipy data-compression

我正在考虑使用亚马逊云来满足我的所有模拟需求.生成的sim文件非常大,我想将它们移动到我的本地驱动器以便于分析,等等.您必须为移动的每个数据付费,因此我希望尽可能小地压缩我的所有SIM卡.它们只是以.mat文件形式保存的numpy数组,使用:

import scipy.io as sio
sio.savemat(filepath, do_compression = True) 
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,压缩numpy数组的最佳方法是什么(它们目前存储在.mat文件中,但我可以使用任何python方法存储它们),使用python压缩保存,linux压缩,或两者兼而有之?

我在linux环境中,我对任何类型的文件压缩都持开放态度.

mjh*_*jhm 7

除非你知道关于数组的一些特殊内容(例如稀疏性或某些模式),否则你不会比默认压缩做得更好,并且可能还有gzip.实际上,如果您使用HTTP进行下载并且您的服务器配置为进行压缩,您甚至可能不需要对文件进行gzip.良好的无损压缩算法很少变化超过10%.

如果savemat像广告一样工作,你应该能够在python中获得gzip压缩:

import scipy.io as sio
import gzip

f_out = gzip.open(filepath_dot_gz, 'wb')
sio.savemat(f_out, do_compression = True)
Run Code Online (Sandbox Code Playgroud)