For the hardcoded part, you can easily read the first line of your file and split it with the same delimiter to know the number of columns.<br>It&#39;s sure it&#39;d be best to be able to be able to skip this part, but you don&#39;t need to hardcode this number into your code at least.<br>

Something like:<br>n_cols = len(open(&#39;myfile.txt&#39;).readline().split(delimiter))<br><br>-=- Olivier<br><br><div class="gmail_quote">2011/6/17 gary ruben <span dir="ltr">&lt;<a href="mailto:gruben@bigpond.net.au" target="_blank">gruben@bigpond.net.au</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks guys - I&#39;m happy with the solution for now. FYI, Derek&#39;s<br>
suggestion doesn&#39;t work in numpy 1.5.1 either.<br>
For any developers following this thread, I think this might be a nice<br>
use case for genfromtxt to handle in future.<br>
As a corollary of this problem, I wonder whether there&#39;s a<br>
human-readable text format for complex numbers that genfromtxt can<br>
currently easily parse into a complex array? Having the hard-coded<br>
value for the number of columns in the converter and the genfromtxt<br>
call goes against the philosophy of the function&#39;s ability to form an<br>
array of shape matching the input layout.<br>
<font color="#888888"><br>
Gary<br>
</font><div><div></div><div><br>
On Sat, Jun 18, 2011 at 7:24 AM, Derek Homeier<br>
&lt;<a href="mailto:derek@astro.physik.uni-goettingen.de" target="_blank">derek@astro.physik.uni-goettingen.de</a>&gt; wrote:<br>
&gt; On 17.06.2011, at 11:01PM, Olivier Delalleau wrote:<br>
&gt;<br>
&gt;&gt;&gt; You were just overdoing it by already creating an array with the converter, this apparently caused genfromtxt to create a structured array from the input (which could be converted back to an ndarray, but that can prove tricky as well) - similar, if you omit the dtype=None. The following<br>


&gt;&gt;&gt;<br>
&gt;&gt;&gt; cnv = dict.fromkeys(range(4), lambda x: complex(*eval(x)))<br>
&gt;&gt;&gt; b = np.genfromtxt(a,converters=cnv, dtype=None, delimiter=18, usecols=range(4))<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; directly produces a shape(4,4) complex array for me (you may have to apply an .astype(np.complex64) afterwards if so desired).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; BTW I think this is an interesting enough case of reading non-trivially structured data that it deserves to appear on some examples or cookbook page.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; HTH,<br>
&gt;&gt;&gt;                                                                Derek<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; NumPy-Discussion mailing list<br>
&gt;&gt;&gt; <a href="mailto:NumPy-Discussion@scipy.org" target="_blank">NumPy-Discussion@scipy.org</a><br>
&gt;&gt;&gt; <a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
&gt;&gt;&gt;<br>
&gt;&gt; I had tried that as well and it doesn&#39;t work with numpy 1.4.1 (I get an object array). It may have been fixed in a later version.<br>
&gt;<br>
&gt; OK, I was using the current master from github, but it works in 1.6.0 as well. I still noticed some differences between loadtxt and genfromtxt behaviour, e.g. where loadtxt would be able to take a string from the converter and automatically convert it to a number, whereas in genfromtxt the converter still had to include the float() or complex()...<br>


&gt;<br>
&gt;                                                Derek<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; NumPy-Discussion mailing list<br>
&gt; <a href="mailto:NumPy-Discussion@scipy.org" target="_blank">NumPy-Discussion@scipy.org</a><br>
&gt; <a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
&gt;<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>
</div></div></blockquote></div><br>