[Numpy-discussion] record iteration (convert a 0-d array, iteration over non-sequence) (original) (raw)
John Parejko parejkoj at speakeasy.net
Fri Jun 23 21:04:49 EDT 2006
- Previous message (by thread): [Numpy-discussion] Current copy
- Next message (by thread): [Numpy-discussion] record iteration (convert a 0-d array, iteration over non-sequence)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Greetings! I'm having trouble using records. I'm not sure whether to report this as a bug, but it certainly isn't a feature! I would like to be able to iterate over the individual rows in a record array, like so:
import numpy.core.records as rec x=rec.array([[1,1.1,'1.0'],[2,2.2,'2.0']], formats='i4,f8,a4',names=['i','f','s'])
type(x[0]) <class 'numpy.core.records.record'>
x[0].tolist() Traceback (most recent call last): File "", line 1, in ? ValueError: can't convert a 0-d array to a list
[i for i in x[0]] Traceback (most recent call last): File "", line 1, in ? TypeError: iteration over non-sequence
Am I going about this wrong? I would think I should be able to loop over an individual row in a record array, or turn it into a list. For the latter, I wrote my own thing, but tolist() should work by itself. Note that in rec2list, I need to use range(len(line)) because the list comprehension doesn't work correctly:
def rec2list(line): """Turns a single element record array into a list.""" return [line[i] for i in xrange(len(line))] #...
I will file a bug, unless someone tells me I'm going about this the wrong way.
Thanks for your help John
--
John Parejko Department of Physics and Astronomy Drexel University Philadelphia, PA
- Previous message (by thread): [Numpy-discussion] Current copy
- Next message (by thread): [Numpy-discussion] record iteration (convert a 0-d array, iteration over non-sequence)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]