ArrayDict#
- class temporaldata.ArrayDict(**kwargs)[source]#
Bases:
objectA dictionary of arrays that share the same first dimension. The number of dimensions for each array can be different, but they need to be at least 1-dimensional.
- Parameters:
**kwargs (
ndarray|list|tuple|_SupportsArray) – arrays that shares the same first dimension.
Example
>>> from temporaldata import ArrayDict >>> import numpy as np >>> units = ArrayDict( ... unit_id=["unit01", "unit02"], ... brain_region=["M1", "M1"], ... waveform_mean=np.random.rand(2, 48), ... ) >>> units ArrayDict( unit_id=[2], brain_region=[2], waveform_mean=[2, 48] )
- select_by_mask(mask)[source]#
Index all arrays with a boolean mask and return a copy.
- Parameters:
mask (
ndarray) – Boolean array used for masking. The mask needs to be 1-dimensional, and of equal length as the object itself.
Example
>>> from temporaldata import ArrayDict >>> import numpy as np >>> units = ArrayDict( ... unit_id=np.array(["unit01", "unit02"]), ... brain_region=np.array(["M1", "M1"]), ... waveform_mean=np.random.rand(2, 48), ... ) >>> units_subset = units.select_by_mask(np.array([True, False])) >>> units_subset ArrayDict( unit_id=[1], brain_region=[1], waveform_mean=[1, 48] )
- classmethod from_dataframe(df, unsigned_to_long=True, **kwargs)[source]#
Creates an
ArrayDictobject from a pandas DataFrame.The columns in the DataFrame are converted to arrays when possible, otherwise they will be skipped.
- Parameters:
df (pandas.DataFrame) – DataFrame.
unsigned_to_long (bool, optional) – If
True, automatically converts unsigned integers to int64. Defaults toTrue.
- to_hdf5(file)[source]#
Saves the data object to an HDF5 file.
- Parameters:
file (h5py.File) – HDF5 file.
import h5py from temporaldata import ArrayDict data = ArrayDict( unit_id=np.array(["unit01", "unit02"]), brain_region=np.array(["M1", "M1"]), waveform_mean=np.zeros((2, 48)), ) with h5py.File("data.h5", "w") as f: data.to_hdf5(f)
- classmethod from_hdf5(file)[source]#
Loads the data object from an HDF5 file.
- Parameters:
file (h5py.File) – HDF5 file.
Note
This method will load all data in memory, if you would like to use lazy loading, call
LazyArrayDict.from_hdf5()instead.import h5py from temporaldata import ArrayDict with h5py.File("data.h5", "r") as f: data = ArrayDict.from_hdf5(f)