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))}