kwarray.util_misc
¶
Module Contents¶
Classes¶
Creates a flat "view" of a jagged nested indexable object. |
- class kwarray.util_misc.FlatIndexer(lens)¶
Bases:
ubelt.NiceRepr
Creates a flat “view” of a jagged nested indexable object. Only supports one offset level.
- Parameters
lens (list) – a list of the lengths of the nested objects.
- Doctest:
>>> self = FlatIndexer([1, 2, 3]) >>> len(self) >>> self.unravel(4) >>> self.ravel(2, 1)
- classmethod fromlist(cls, items)¶
Convenience method to create a
FlatIndexer
from the list of items itself instead of the array of lengths.- Parameters
items (List[list]) – a list of the lists you want to flat index over
- Returns
FlatIndexer
- __len__(self)¶
- unravel(self, index)¶
-
Example
>>> import kwarray >>> rng = kwarray.ensure_rng(0) >>> items = [rng.rand(rng.randint(0, 10)) for _ in range(10)] >>> self = kwarray.FlatIndexer.fromlist(items) >>> index = np.arange(0, len(self)) >>> outer, inner = self.unravel(index) >>> recon = self.ravel(outer, inner) >>> # This check is only possible because index is an arange >>> check1 = np.hstack(list(map(sorted, kwarray.group_indices(outer)[1]))) >>> check2 = np.hstack(kwarray.group_consecutive_indices(inner)) >>> assert np.all(check1 == index) >>> assert np.all(check2 == index) >>> assert np.all(index == recon)
- ravel(self, outer, inner)¶
- Parameters
outer – index into outer list
inner – index into the list referenced by outer
- Returns
the raveled index
- Return type
index