Reset data in pytables array

I used createArray() to create a pytables array with data set. I then added
a bunch of attributes on the array node. Now suppose I need to modify the
data of the array (replacing the whole array so I don't care about elements
access), what's the best way to do that? I used pyhdf for HDF4 and there's
a set() method, and I thought it's very convenient. Is there something
similar in pytables? Thanks.

Jianfu

A Monday 02 June 2008, Jianfu Pan escrigué:

I used createArray() to create a pytables array with data set. I
then added a bunch of attributes on the array node. Now suppose I
need to modify the data of the array (replacing the whole array so I
don't care about elements access), what's the best way to do that? I
used pyhdf for HDF4 and there's a set() method, and I thought it's
very convenient. Is there something similar in pytables? Thanks.

Yes, it is. Use the __setitem__() method. From the docstrings:

"""
Definition: arr.__setitem__(self, key, value)
Docstring:
    Set a row, a range of rows or a slice in the array.

    It takes different actions depending on the type of the `key`
    parameter: if it is an integer, the corresponding array row is
    set to `value` (the value is broadcast when needed). If the
    `key` is a slice, the row slice determined by it is set to
    `value` (as usual, if the slice to be updated exceeds the
    actual shape of the array, only the values in the existing
    range are updated).

    If the `value` is a multidimensional object, then its shape
    must be compatible with the shape determined by the `key`,
    otherwise, a ``ValueError`` will be raised.

    Example of use::

        a1[0] = 333 # assign an integer to a Integer Array row
        a2[0] = 'b' # assign a string to a string Array row
        a3[1:4] = 5 # broadcast 5 to slice 1:4
        a4[1:4:2] = 'xXx' # broadcast 'xXx' to slice 1:4:2
        # General slice update (a5.shape = (4,3,2,8,5,10).
        a5[1, ..., ::2, 1:4, 4:] = arange(1728, shape=(4,3,2,4,3,6))

"""

PS: For PyTables only related questions, please use just the PyTables
user list so as not to bother other HDF5 users not using it.

···

--
Francesc Alted
Freelance developer
Tel +34-964-282-249

----------------------------------------------------------------------
This mailing list is for HDF software users discussion.
To subscribe to this list, send a message to hdf-forum-subscribe@hdfgroup.org.
To unsubscribe, send a message to hdf-forum-unsubscribe@hdfgroup.org.