Dataframe从内存大小相差很大的文件夹中读取图像

2024-05-23 22:33:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多个文件夹的图像,我读到dataframe,每个文件夹在一个dataframe行与它是相关联的数据。整个文件夹的大小是350MB,但是当我把它读入dataframe时,总大小变成了24GB,你知道为什么会这样吗

   videos = pd.DataFrame()
   filepath= 'C:/Users/sarmad/Documents/data/labels_metadata.csv''
   metadf = pd.read_csv(filepath)
   metadf.index = metadf.Instance_name

   for folder in folders:
     pth_upd = pth + folder + '/'
     metacsv= 
      ' pd.read_csv('C:/Users/sarmad/Documents/dev/'+format(folder)+'.csv')



x=format(folder)
meta = metadf.loc[format(folder)]
meta = pd.DataFrame([meta.values], index=[folder], columns=metadf.columns)
df = pd.DataFrame(index=[folder])
df = df.join(meta) 

allfiles = os.listdir(pth_upd)
files = []
columns = ['data']
for file in allfiles:
    files.append(file) if ('.jpg' in file) else None
    samples = np.empty((1,227,227))

for file in files:
    img = cv2.imread(os.path.join(pth_upd,file),0)
    img = img.reshape(1,227,227)
    img=img.astype(np.float32)
    samples = np.append(samples, img, axis=0)


result = pd.DataFrame(([[samples]]), index=[folder], columns=['videos'])


print(samples.shape)

videos=videos.append(result)

videos.info(memory\u usage='deep')

 <class 'pandas.core.frame.DataFrame'>
 Index: 2 entries, dev_001 to dev_060
 Data columns (total  1 columns):
 videos    60 non-null object
 dtypes: object(1)
 memory usage: 24GB   

Tags: columnscsvin文件夹dataframeimgindexfolder
1条回答
网友
1楼 · 发布于 2024-05-23 22:33:44

如果在转换图像时使用np.int8而不是np.float32,会有帮助吗?因为RGB值的范围是(0,255),可以表示为8位整数

然而,理论上,它只是将内存大小减少了4倍,所以它仍然占用6GB的内存

相关问题 更多 >