1

これはおそらくよく知られている答えです....しかし、11GB のファイル (csv) が Python (Pandas) または R にインポートされると、なぜそのサイズの 2 倍以上になるのでしょうか?

問題のデータは、解凍すると 11GBの Kaggle 競技会(train ファイル) からのものです。Python や R にロードすると、その 2 倍以上のスペースが必要になります。Windows には 32 GB の RAM があり (ファイルをロードすると 29 GB まで空きます)、空き容量がほとんどありません。

Python の場合:

import pandas as pd
train=pd.read_csv("C:\\Users\\train.csv")

Rで:

train<-read.csv(file="C:\\train.csv",header=TRUE)
4

1 に答える 1

3

シリアル化されたデータとメモリ内のデータは構造が異なります

データをディスク (例: CSV ファイル) にシリアル化するのはかなり単純なタスクであり、予測可能な方法でデータの書き込みと読み取りをサポートするだけで済みます。従うべき唯一の規則は、明確に定義された形式を使用することです。

一方、処理のために RAM にロードされるデータは、多くの場合、いくつかの理由で大きくなります。

  • すべての数値は同じサイズのバイトを使用し、すべての期待値に適合するために、バイト数はほとんどの数値に必要なサイズよりも大きくなります。
  • プログラムの64ビットバージョンでは、割り当てられたメモリの最小量が制限されています-下から、最も単純なデータでさえ、OSによって与えられたアドレス指定の理由だけで必要以上のデータを占有します
  • 多くの場合、サポート構造があります (たとえば、ハッシュ/辞書の場合、周りに一種のインデックスがあります)

とにかく、メモリ内のデータは、貧弱なシリアル化形式よりも効率的である可能性がありますが、経験したように、これはあなたの場合ではありません。

于 2014-06-27T00:38:07.693 に答える