A Thursday 16 December 2010 11:07:26 Andrey Sobolev escrigué:
> Hi,
>
> it seems that modifyRows() method does not work. When I try to modify
> a row I get an error:
>
> Object cannot be converted into a recarray object compliant with
> table format '[('ADCcount', '()u2'), ('TDCcount', '()u1'),
> ('energy', '()f8'), ('grid_i', '()i4'), ('grid_j', '()i4'),
> ('idnumber', '()i8'), ('name', '()S16'), ('pressure', '()f4')]'. The
> error was: <mismatch between the number of fields and the number of
> arrays>
>
> (table from the example from the pytables "getting started" page)
>
> I do the modification using:
>
> row = table[1]
> row['ADCcount'] = 250
> table.modifyRows(1, rows=[row])
>
> So the dimensions are 100% the same!
> The error is always present, with no dependency on number of columns
> in table, column formats, etc. What can be is wrong?
> The modifyCoordinates() gives the same error. So there's no way to
> modify data in a table..
Yeah, that's a deficiency in the way a NumPy void is treated, and that
should be addressed. Added a ticket:
http://pytables.org/trac/ticket/328
Meanwhile, you can do what you want by adding an extra set of "[]"
brackets:
table.modifyRows(1, rows=[[row]])
or, you can find the next idiom more readable:
table[1] = [r]
Thanks for reporting!
--
Francesc Alted
------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Pytables-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pytables-users