def prune_indices(self, transforms=None):
        """Return indices of pruned rows and columns as list.

        The return value has one of three possible forms:

        * a 1-element list of row indices (in case of 1D cube)
        * 2-element list of row and col indices (in case of 2D cube)
        * n-element list of tuples of 2 elements (if it's 3D cube).

        For each case, the 2 elements are the ROW and COL indices of the
        elements that need to be pruned. If it's a 3D cube, these indices are
        calculated "per slice", that is NOT on the 0th dimension (as the 0th
        dimension represents the slices).
        """
        if self.ndim >= 3:
            # In case of a 3D cube, return list of tuples
            # (of row and col pruned indices).
            return self._prune_3d_indices(transforms)

        def prune_non_3d_indices(transforms):
            row_margin = self._pruning_base(
                hs_dims=transforms, axis=self.row_direction_axis
            )
            row_indices = self._margin_pruned_indices(
                row_margin, self._inserted_dim_inds(transforms, 0), 0
            )

            if row_indices.ndim > 1:
                # In case of MR, we'd have 2D prune indices
                row_indices = row_indices.all(axis=1)

            if self.ndim == 1:
                return [row_indices]

            col_margin = self._pruning_base(
                hs_dims=transforms, axis=self._col_direction_axis
            )

            col_indices = self._margin_pruned_indices(
                col_margin, self._inserted_dim_inds(transforms, 1), 1
            )
            if col_indices.ndim > 1:
                # In case of MR, we'd have 2D prune indices
                col_indices = col_indices.all(axis=0)

            return [row_indices, col_indices]

        # In case of 1 or 2 D cubes, return a list of
        # row indices (or row and col indices)
        return prune_non_3d_indices(transforms)
Return indices of pruned rows and columns as list.

        The return value has one of three possible forms:

        * a 1-element list of row indices (in case of 1D cube)
        * 2-element list of row and col indices (in case of 2D cube)
        * n-element list of tuples of 2 elements (if it's 3D cube).

        For each case, the 2 elements are the ROW and COL indices of the
        elements that need to be pruned. If it's a 3D cube, these indices are
        calculated "per slice", that is NOT on the 0th dimension (as the 0th
        dimension represents the slices).