cf.Field.__getitem__

Field.__getitem__(indices)[source]

f.__getitem__(indices) <==> f[indices]

Return a subspace of the field defined by index values

Subspacing by axis indices uses an extended Python slicing syntax, which is similar to numpy array indexing. There are extensions to the numpy indexing functionality:

  • Size 1 axes are never removed.

    An integer index i takes the i-th element but does not reduce the rank of the output array by one:

    >>> f.shape
    (12, 73, 96)
    >>> f[0].shape
    (1, 73, 96)
    >>> f[3, slice(10, 0, -2), 95:93:-1].shape
    (1, 5, 2)
    
  • The indices for each axis work independently.

    When more than one axis’s slice is a 1-d boolean sequence or 1-d sequence of integers, then these indices work independently along each axis (similar to the way vector subscripts work in Fortran), rather than by their elements:

    >>> f.shape
    (12, 73, 96)
    >>> f[:, [0, 72], [5, 4, 3]].shape
    (12, 2, 3)
    

    Note that the indices of the last example would raise an error when given to a numpy array.

  • Boolean indices may be any object which exposes the numpy array interface, such as the field’s coordinate objects:

    >>> f[:, f.coord('latitude')<0].shape
    (12, 36, 96)
    
>>> f.shape
(12, 73, 96)
>>> f[...].shape
(12, 73, 96)
>>> f[slice(0, 12), :, 10:0:-2].shape
(12, 73, 5)
>>> f[..., f.coord('longitude')<180].shape
(12, 73, 48)

New in version 2.0.

Examples 1:
>>> g = f[..., 0, :6, 9:1:-2, [1, 3, 4]]
Returns:out: cf.{+Variable}