[Numpy-discussion] Using loadtxt to read in mixed data types

Pierre GM pgmdevlist at gmail.com
Thu Jul 2 18:56:27 EDT 2009


On Jul 2, 2009, at 6:42 PM, Peter Kelley wrote:

>
> Hey Everyone,
>
> I am reading in a file of columns with mixed data types, and the  
> number of columns can vary and their format is inputted by the user.  
> So I came up with this:
>
> dt=dtype({'names': [x for x in event_fields], 'formats': [b for b in  
> event_format]})
>
> eventArray = loadtxt(behEventFile,dt)
>
> where event_format is ['long', 'int', 'int', 'int', 'int', 'int',  
> 'str', 'str', 'int', 'int', 'int', 'int', 'int', 'int', 'int', 'int']
>
> I get TypeError: data type not understood, and I think it is because  
> the event format is a list of strings not data types. Does anyone  
> have know how to convert the list of strings into the data types for  
> dtype.

What about
'formats':[eval(b) for b in event_format]

Should it fail, try something like:
dtype([(x,eval(b)) for (x,b) in zip(event_fields, event_format)])

At least you force dtype to have the same nb of names & formats.


>
> -Peter
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion




More information about the NumPy-Discussion mailing list