class_docstr: Attributes
  ----------
  _data : recarray
      Underlying data, as a record array.
  _mask : boolean array
      Mask of the records. A record is masked when all its fields are
      masked.
  _fieldmask : boolean recarray
      Record array of booleans, setting the mask of each individual field
      of each record.
  _fill_value : record
      Filling values for each field.
class_docstr_tok: ["Attributes","--","--","--","--","--","_data",":","recarray","Underlying","data",",","as","a","record","array",".","_mask",":","boolean","array","Mask","of","the","records",".","A","record","is","masked","when","all","its","fields","are","masked",".","_fieldmask",":","boolean","recarray","Record","array","of","booleans",",","setting","the","mask","of","each","individual","field","of","each","record",".","_fill_value",":","record","Filling","values","for","each","field","."]
code: def __new__(
      cls,
      shape,
      dtype=None,
      buf=None,
      offset=0,
      strides=None,
      formats=None,
      names=None,
      titles=None,
      byteorder=None,
      aligned=False,
      mask=nomask,
      hard_mask=False,
      fill_value=None,
      keep_mask=True,
      copy=False,
      **options,
  ):
      self = recarray.__new__(
          cls,
          shape,
          dtype=dtype,
          buf=buf,
          offset=offset,
          strides=strides,
          formats=formats,
          names=names,
          titles=titles,
          byteorder=byteorder,
          aligned=aligned,
      )
  
      mdtype = ma.make_mask_descr(self.dtype)
      if mask is nomask or not np.size(mask):
          if not keep_mask:
              self._mask = tuple([False] * len(mdtype))
      else:
          mask = np.array(mask, copy=copy)
          if mask.shape != self.shape:
              (nd, nm) = (self.size, mask.size)
              if nm == 1:
                  mask = np.resize(mask, self.shape)
              elif nm == nd:
                  mask = np.reshape(mask, self.shape)
              else:
                  msg = (
                      "Mask and data not compatible: data size is %i, "
                      + "mask size is %i."
                  )
                  raise MAError(msg % (nd, nm))
          if not keep_mask:
              self.__setmask__(mask)
              self._sharedmask = True
          else:
              if mask.dtype == mdtype:
                  _mask = mask
              else:
                  _mask = np.array(
                      [tuple([m] * len(mdtype)) for m in mask],
                      dtype=mdtype,
                  )
              self._mask = _mask
      return self
  
imports: from numpy.ma import MAError, MaskedArray, masked, nomask, masked_array, getdata, getmaskarray, filled
  import numpy.ma
  import warnings
  import numpy
  from numpy import dtype, ndarray, array
  from numpy._core.records import recarray, fromarrays, fromrecords
label_desc: Use image node_id 1 for calling the MaskedRecords obj's underlying member method code with example usage: obj.__new__(cls, shape, dtype, buf, offset, strides, formats, names, titles, byteorder, aligned, mask, hard_mask, fill_value, keep_mask, copy) and returns: self