为什么np.save()在磁盘上占用了这么多空间

时间:2018-03-12 08:44:06

标签: python numpy keras

我存储的numpy数组包含一个图像。图像的大小为23.4 KB,但.npy文件的大小为4 MB

import numpy as np
from keras.preprocessing.image import load_img,img_to_array

image=load_img('image.JPEG')
array=img_to_array(image)
np.save('sample.npy',array)

3 个答案:

答案 0 :(得分:6)

因为np将其保存为矩阵,这意味着没有压缩。但JPEG无疑是一种压缩格式。也许您可以将原始图片转换为BMP,并将其大小视为BMP是一种没有压缩的格式。

答案 1 :(得分:4)

  

numpy.save()

  • 未压缩的二进制文件

如果你需要压缩它,请使用

  

numpy.savez_compressed()

  • 使用压缩档案进行压缩

答案 2 :(得分:0)

这还取决于您的np矩阵的dtype。图像可能是量化值(也许是整数),而矩阵可能是float64。将dtype更改为uint可以减少占用的空间