Pythonのcsvモジュールを使用してcsvファイルから取得したデータを処理しようとしています。これには約50列と401125行があります。次のコードチャンクを使用して、そのデータをリストに追加しました
csv_file_object = csv.reader(open(r'some_path\Train.csv','rb'))
header = csv_file_object.next()
data = []
for row in csv_file_object:
data.append(row)
len(data)を使用してこのリストの長さを取得でき、401125を返します。リストインデックスを呼び出すことで、個々のレコードを取得することもできます。しかし、np.size(data)を呼び出してリストのサイズを取得しようとすると(numpyをnpとしてインポートしました)、次のスタックトレースが取得されます。
MemoryErrorトレースバック(最後の最後の呼び出し)in()----> 1 np.size(data)
C:\ Python27 \ lib \ site-packages \ numpy \ core \ fromnumeric.pyc in size(a、axis)2198 return a.size 2199ただし、AttributeError:-> 2200 return asarray(a).size 2201 else:2202 try:
C:\ Python27 \ lib \ site-packages \ numpy \ core \ neuro.pyc in asarray(a、dtype、order)233 234 "" "-> 235 return array(a、dtype、copy = False、order = order )236 237 def asanyarray(a、dtype = None、order = None):
MemoryError:
リストインデックスを使用してそのリストを複数の部分に分割したり、このリストをnumpy配列に変換したりすることさえできません。これと同じメモリエラーが発生します。
この種のビッグデータサンプルをどのように処理できますか。このような大きなデータセットを処理する他の方法はありますか?
私はWindows7Professionalでipythonノートブックを使用しています。