A Wednesday 03 June 2009 18:44:41 Robert Ferrell escrigué:
> I'm trying to read rows from a table. I wrote the table with a
> dictionary descriptor, which looks like {'label':
> tables.StringCol(16), 'x':tables. Float64Col(), 'y':tables.
> Float64Col()}
>
> tbl = h5File.createTable(gp, tblName, tblDict, title='')
>
> If I read the whole table with tbl.read() I get an array of records,
> with the field names 'label', 'x', 'y', just as expected.
>
> However, I can't figure out how to read one row at a time and get a
> record array. I've tried:
>
> r = [row[:] for row in tbl]
>
> I get back a list with an item per row, but the rows are tuples, not
> record arrays. How can I read the rows and get record arrays?
For getting pure NumPy void types, use `Row.fetch_all_fields()` instead.
>
> A second question. Ultimately I want to read only rows with certain
> 'label' fields. I have a set of labels, labelSet, and I want to get
> the rows with labels in that set:
>
> r = [ row[:] for row in tbl if (row['label'] in labelSet)]
>
> Is there a better/faster way to select those rows?
Perhaps this?:
r = [ [row[l] for l in labelSet] for row in tbl]
--
Francesc Alted
------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises
looking to deploy the next generation of Solaris that includes the latest
innovations from Sun and the OpenSource community. Download a copy and
enjoy capabilities such as Networking, Storage and Virtualization.
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Pytables-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pytables-users