Do you expect to have very large integer values, or only values over a limited range?  <br><br>If your integer values will fit in into 16-bit range (or even 32-bit, if you're on a 64-bit machine, the default dtype is float64...) you can potentially halve your memory usage.<br>
<br>I.e. Something like:<br>data = numpy.loadtxt(filename, dtype=numpy.int16)<br><br>Alternately, if you're already planning on using a (scipy) sparse array anyway, it's easy to do something like this:<br><br><div style="margin-left: 40px; font-family: courier new,monospace;">
import numpy as np<br>import scipy.sparse<br>I, J, V = [], [], []<br>with open('infile.txt') as infile:<br>    for i, line in enumerate(infile):<br>        line = np.array(line.strip().split(), dtype=<a href="http://np.int">np.int</a>)<br>
        nonzeros, = line.nonzero()<br>        I.extend([i]*nonzeros.size)<br>        J.extend(nonzeros)<br>        V.extend(line[nonzeros])<br>data = scipy.sparse.coo_matrix((V,(I,J)), dtype=<a href="http://np.int">np.int</a>, shape=(i+1, line.size))<br>
<br></div><div style="font-family: courier new,monospace;"><font face="arial,helvetica,sans-serif">This will be much slower than numpy.loadtxt(...), but if you're just converting the output of loadtxt to a sparse array, regardless, this would avoid memory usage problems (assuming the array is mostly sparse, of course).<br>
<br>Hope that helps,<br>-Joe<br></font></div>        <br><br><br><div class="gmail_quote">On Fri, Feb 25, 2011 at 9:37 AM, Jaidev Deshpande <span dir="ltr"><<a href="mailto:deshpande.jaidev@gmail.com" target="_blank">deshpande.jaidev@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi<div><br></div><div>Is it possible to load a text file 664 MB large with integer values and about 98% sparse? numpy.loadtxt() shows a memory error.</div><div><br></div><div>If it's not possible, what alternatives could I have?</div>



<div><br></div><div>The usable RAM on my machine running Windows 7 is 3.24 GB.</div><div><br></div><div>Thanks.</div>
<br>_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org" target="_blank">NumPy-Discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
<br></blockquote></div><br>