[英]Memory Error occurs while working with large dataset
我有3個numpy數組的插值數據。
Each of Length - 107952899
當我將這三個numpy數組組合為pandas df時,我得到了MemoryError
。
我必須做一些計算,大熊貓讓它變得更容易,所以我更喜歡大熊貓。 我相信三個numpy陣列的內存大小超過3 Gb甚至更多。
8Gb RAM python 3.6.3
我知道發生此類錯誤的原因,但是有沒有可能避免MemoryError或要遵循的其他最佳實踐?
當我將這三個numpy數組組合為pandas df時,我遇到了MemoryError。
假設您這樣做:
import numpy as np
import pandas as pd
big_array_1 = np.array(np.random.random(10**7))
big_array_2 = np.array(np.random.random(10**7))
big_array_3 = np.array(np.random.random(10**7))
在我的計算機上,它需要大約300 MB的內存。
然后,如果我這樣做:
df = pd.DataFrame([big_array_1,big_array_2, big_array_3])
內存飆升至9Gb。 如果將其乘以10(以獲取3 Gb的數據而不是我的300的數據),則將增加到90 Gb,這可能比Ram +可用的交換要多,這將引發MemoryError
。
但是,如果這樣做,您可以:
df = pd.DataFrame({"A":big_array_1, "B": big_array_2, "C":big_array_3})
那么您的內存使用量將不會明顯大於三個陣列之一。
我懷疑這是你的問題...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.