Numpy 为什么npy文件的大小和jpg、png图像相比如此之大

Numpy 为什么npy文件的大小和jpg、png图像相比如此之大,numpy,cv2,Numpy,Cv2,大家好,我只是想尝试一下,如果我们将图像保存到npy文件中,那么它的大小一定会变小,但事实并非如此。实际上,图像的大小会变大20倍,在某些情况下,5 MB图像会转换为100 MB。npy文件。有人知道这一点的原因吗?我尝试搜索相同的,但大多数答案是。npy格式的读取速度非常快图像文件,我知道,所以我的想法保存图像文件为.npy是错误的,但为什么呢 这是我用来测试我的假设的代码文件 import cv2 import numpy as np from time import time w,h

大家好,我只是想尝试一下,如果我们将图像保存到npy文件中,那么它的大小一定会变小,但事实并非如此。实际上,图像的大小会变大20倍,在某些情况下,5 MB图像会转换为100 MB。npy文件。有人知道这一点的原因吗?我尝试搜索相同的,但大多数答案是。npy格式的读取速度非常快图像文件,我知道,所以我的想法保存图像文件为.npy是错误的,但为什么呢 这是我用来测试我的假设的代码文件


import cv2
import numpy as np
from time import time

w,h = 200,200
data = []

def makeData(var):
    img = cv2.imread(f'{var}.jpg')
    print(img.shape)
    print(img.nbytes / 1024 / 1024)

    print('resize_img')

    resize_img = cv2.resize(img,(w,h))
    print(resize_img.shape)
    print(resize_img.nbytes / 1024 / 1024)


    print('save to npy file')

    return resize_img

    #np.save(f'{var}.npy',np.array(img))
    #np.save(f'{var}_resize.npy',np.array(resize_img))
    #cv2.imwrite(f'{var}_resize.jpg',resize_img)



def readImgData(var):
    img = cv2.imread(f'{var}.jpg')
    print(img.shape)

def readNPYData(var):
    data = np.load("data.npy", allow_pickle=True)
    print('Length of data',len(data))
    

varList = ['a','b','c','d','e']
t1 = time()
for var in varList:
    #resize_img = makeData(var)
    #data.append(resize_img)
    readImgData(var)
t2 = time()

print('Time Taken to read Image Data is,',t2-t1)

t1 = time()
for var in varList:
    readNPYData(var)
t2 = time()

print('Time Taken to read NPY Data is,',t2-t1)
    
    

#np.save('data.npy',data)   

像jpg和png这样的图像格式是压缩的。Npy文件未压缩。查看npz中的压缩numpy文件。好的,我想是Jpeg,png和其他格式已经进行了压缩,但将其转换为numpy确实加快了阅读速度,但增加了大小“机器学习中没有人关心大小LOL”@jakub谢谢我刚刚用compressed进行了检查,结果肯定从90MB提高到45MB,但这比5Mb原始图像大小更糟糕