On 17.06.2011, at 11:01PM, Olivier Delalleau wrote:
>> 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
>>
>> cnv = dict.fromkeys(range(4), lambda x: complex(*eval(x)))
>> b = np.genfromtxt(a,converters=cnv, dtype=None, delimiter=18,
>> usecols=range(4))
>>
>> directly produces a shape(4,4) complex array for me (you may have to apply
>> an .astype(np.complex64) afterwards if so desired).
>>
>> 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.
>>
>> HTH,
>> Derek
>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> [email protected]
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
> I had tried that as well and it doesn't work with numpy 1.4.1 (I get an
> object array). It may have been fixed in a later version.
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()...
Derek
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion