Python ile okumaya çalıştığım 3 GB CSV dosyam var, medyan sütun bilgisine ihtiyacım var. Bunu sadece bellek hatası dışında olduğunu düşünüyorumPython büyük CSV dosyasındaki bellek yetersiz (numpy)
Python(1545) malloc: *** mmap(size=16777216) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
Traceback (most recent call last):
File "Normalize.py", line 40, in <module>
data = data()
File "Normalize.py", line 39, in data
return genfromtxt('All.csv',delimiter=',')
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-
packages/numpy/lib/npyio.py", line 1495, in genfromtxt
for (i, line) in enumerate(itertools.chain([first_line, ], fhd)):
MemoryError
:
from numpy import *
def data():
return genfromtxt('All.csv',delimiter=',')
data = data() # This is where it fails already.
med = zeros(len(data[0]))
data = data.T
for i in xrange(len(data)):
m = median(data[i])
med[i] = 1.0/float(m)
print med
alıyorum hata budur. 64bit modunda derlenmiş 64bit MacOSX 4GB ram ve hem numpy hem de Python ile çalışıyorum.
Bunu nasıl düzeltirim? Sadece bellek yönetimi için dağıtılmış bir yaklaşım denemeliyim?
Teşekkür
DÜZENLEME: Ayrıca, bu ancak hiçbir şans ile çalıştı ...
genfromtxt('All.csv',delimiter=',', dtype=float16)
kullanın [pandas.read_csv] (http://wesmckinney.com/blog/?p=543) önemli ölçüde daha hızlı. –