ArrayDict#
- class torch_brain.data.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 torch_brain.data 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 torch_brain.data import ArrayDict >>> import numpy as np >>> units = ArrayDict( ... unit_id=["unit01", "unit02"], ... brain_region=["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.
- to_hdf5(file)[source]#
Saves the data object to an HDF5 file.
- Parameters:
file – HDF5 file.
import h5py from torch_brain.data import ArrayDict data = ArrayDict( unit_id=["unit01", "unit02"], brain_region=["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 – 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 torch_brain.data import ArrayDict with h5py.File("data.h5", "r") as f: data = ArrayDict.from_hdf5(f)