正常保存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,不过这也是相当不错了,仅仅稍微改动一下代码就能带来资源的节省何乐而不为呢?