numpy数据的压缩保存方式

正常保存npy数据和加载

import numpy as np
# 假设你有两个NumPy数组,分别为arr1和arr2
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 使用np.save保存数组到文件
np.save('data.npy', arr1=arr1, arr2=arr2)

# 加载数据
# 加载保存的数据文件
loaded_data = np.load('data.npy')

# 获取保存的数组
loaded_arr1 = loaded_data['arr1']
loaded_arr2 = loaded_data['arr2']

# 打印加载的数组
print(loaded_arr1)
print(loaded_arr2)

换成保存npz数据和加载

import numpy as np
# 假设你有两个NumPy数组,分别为arr1和arr2
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 使用np.savez_compressed保存数组到文件
np.savez_compressed('data.npz', arr1=arr1, arr2=arr2)

# 加载数据
# 加载保存的数据文件
loaded_data = np.load('data.npz')

# 获取保存的数组
loaded_arr1 = loaded_data['arr1']
loaded_arr2 = loaded_data['arr2']

# 打印加载的数组
print(loaded_arr1)
print(loaded_arr2)

np.savez_compressed函数压缩的大小与原始数组的数据类型和大小有关。一般来说,它可以将数百兆或数千兆大小的NumPy数组有效地压缩到几十兆的文件中,

具体来说,如果你有一个1 GB的NumPy数组,使用np.save函数保存为.npy格式的文件时,这个文件的大小也将是1 GB。而如果你使用np.savez_compressed函数将其保存为.npz格式的文件,通常可以将其压缩到几十兆以下的大小。

当然,压缩率还受到数据本身的影响,如果数据本身就有较高的熵,那么压缩率可能会更低。所以,如果你需要保存大量的NumPy数组,建议尝试使用np.savez_compressed函数将其压缩保存,以节省磁盘空间。但是我在实际应用中数据差异化很大的时候2.5GB的数据压缩到1.28GB,不过这也是相当不错了,仅仅稍微改动一下代码就能带来资源的节省何乐而不为呢?

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值