【问题标题】:Why does np.save() take so much space on disk为什么 np.save() 在磁盘上占用这么多空间
【发布时间】:2018-08-20 05:31:55
【问题描述】:

我存储的 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)

【问题讨论】:

  • 我希望 JPEG 压缩成为其中的重要组成部分;我认为您正在构建的数组没有任何压缩。
  • 图片的分辨率是多少?

标签: python numpy keras


【解决方案1】:

numpy.save()

  • 未压缩的二进制文件

如果你需要压缩它使用

numpy.savez_compressed()

  • 使用压缩存档压缩

【讨论】:

  • savez_compressed 和 savez 可能正在压缩,但对于大小为 (3,1000,1000) 的 float64 矩阵,这并没有真正的帮助。大小从 ~25 MB 变为 ~21MB
【解决方案2】:

因为np将其保存为矩阵,这意味着没有压缩。但是JPEG 无疑是一种压缩格式。或许你可以把原图转成BMP,看看它的大小,BMP是一种没有压缩的格式。

【讨论】:

    【解决方案3】:

    它还取决于你的 np 矩阵的 dtype。图像可能是量化值(可能是 uint),而矩阵可能是 float64。将 dtype 更改为 uint 应该会减少使用的空间

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-06
      • 2013-12-03
      • 2013-01-01
      • 2023-03-12
      • 1970-01-01
      • 2019-12-14
      • 2015-10-07
      相关资源
      最近更新 更多