xoa.misc.get_axis_slices
- xoa.misc.get_axis_slices(ndim, axis, **kwargs)[source]
Get standard slices for an axis of a ndim array
- Parameters:
ndim – The number of dimensions. It can also be a tuple (like an array shape) or an array.
axis – Index of the axis.
- Returns:
A dictionary of tuples of slices. All tuples have a – length of ndim, and can be used has a slice for the array (see exedges =ample).
"all"
: Select everything."first"
/"last"
: First and last."firstp1"
: Second element."firstp2"
: Third element."lastm1"
: Element before the last one."lastm2"
: Second element before the last one."firsts"
: All but the last."lasts"
: All but the first."firstsm1"
: All but the last two."lastsp1"
: All but the first two."mid"
: All but the first and last.
Example
In [1]: var = np.arange(2*5*4).reshape(2, 5, 4) In [2]: pprint.pprint(get_axis_slices(var, axis=1)) {'all': [slice(None, None, None), slice(None, None, None), slice(None, None, None)], 'first': (slice(None, None, None), 0, slice(None, None, None)), 'firstp1': (slice(None, None, None), 1, slice(None, None, None)), 'firstp2': (slice(None, None, None), 2, slice(None, None, None)), 'firsts': (slice(None, None, None), slice(0, -1, None), slice(None, None, None)), 'firstsm1': (slice(None, None, None), slice(0, -2, None), slice(None, None, None)), 'last': (slice(None, None, None), -1, slice(None, None, None)), 'lastm1': (slice(None, None, None), -2, slice(None, None, None)), 'lastm2': (slice(None, None, None), -3, slice(None, None, None)), 'lasts': (slice(None, None, None), slice(1, None, None), slice(None, None, None)), 'lastsp1': (slice(None, None, None), slice(2, None, None), slice(None, None, None)), 'mid': (slice(None, None, None), slice(1, -1, None), slice(None, None, None))}