code: def _prune_3d_body(self, res, transforms):
          
          mask = np.zeros(res.shape)
          mr_dim_idxs = self.mr_dim_ind
  
          for i, prune_inds in enumerate(self.prune_indices(transforms)):
              rows_pruned = prune_inds[0]
              cols_pruned = prune_inds[1]
              rows_pruned = np.repeat(rows_pruned[:, None], len(cols_pruned), axis=1)
              cols_pruned = np.repeat(cols_pruned[None, :], len(rows_pruned), axis=0)
              slice_mask = np.logical_or(rows_pruned, cols_pruned)
  
              # In case of MRs we need to "inflate" mask
              if mr_dim_idxs == (1, 2):
                  slice_mask = slice_mask[:, np.newaxis, :, np.newaxis]
              elif mr_dim_idxs == (0, 1):
                  slice_mask = slice_mask[np.newaxis, :, np.newaxis, :]
              elif mr_dim_idxs == (0, 2):
                  slice_mask = slice_mask[np.newaxis, :, :, np.newaxis]
              elif mr_dim_idxs == 1 and self.ndim == 3:
                  slice_mask = slice_mask[:, np.newaxis, :]
              elif mr_dim_idxs == 2 and self.ndim == 3:
                  slice_mask = slice_mask[:, :, np.newaxis]
  
              mask[i] = slice_mask
  
          res = np.ma.masked_array(res, mask=mask)
          return res
docs: Return masked array where mask indicates pruned vectors.
  
          *res* is an ndarray (result). *transforms* is a list of ...