def put(self, key, value, attrs=None, format=None, append=False, **kwargs):
if not isinstance(value, np.ndarray):<EOL><INDENT>super(NumpyHDFStore, self).put(key, value, format, append, **kwargs)<EOL><DEDENT>else:<EOL><INDENT>group = self.get_node(key)<EOL>if group is not None and not append:<EOL><INDENT>self._handle.removeNode(group, recursive=True)<EOL>group = None<EOL><DEDENT>if group is None:<EOL><INDENT>paths = key.split('<STR_LIT:/>')<EOL>path = '<STR_LIT:/>'<EOL>for p in paths:<EOL><INDENT>if not len(p):<EOL><INDENT>continue<EOL><DEDENT>new_path = path<EOL>if not path.endswith('<STR_LIT:/>'):<EOL><INDENT>new_path += '<STR_LIT:/>'<EOL><DEDENT>new_path += p<EOL>group = self.get_node(new_path)<EOL>if group is None:<EOL><INDENT>group = self._handle.createGroup(path, p)<EOL><DEDENT>path = new_path<EOL><DEDENT><DEDENT>ds_name = kwargs.get('<STR_LIT>', self._array_dsname)<EOL>ds = self._handle.createArray(group, ds_name, value)<EOL>if attrs is not None:<EOL><INDENT>for key in attrs:<EOL><INDENT>setattr(ds.attrs, key, attrs[key])<EOL><DEDENT><DEDENT>self._handle.flush()<EOL>return ds<EOL><DEDENT>
Store object in HDFStore

Parameters
----------
key : str

value : {Series, DataFrame, Panel, Numpy ndarray}

format : 'fixed(f)|table(t)', default is 'fixed'
    fixed(f) : Fixed format
        Fast writing/reading. Not-appendable, nor searchable

    table(t) : Table format
        Write as a PyTables Table structure which may perform worse but allow more flexible operations
        like searching/selecting subsets of the data

append : boolean, default False
    This will force Table format, append the input data to the
    existing.

encoding : default None, provide an encoding for strings