MCPcopy Create free account
hub / github.com/numpy/numpy / __new__

Method __new__

numpy/ma/mrecords.py:94–132  ·  view source on GitHub ↗
(cls, shape, dtype=None, buf=None, offset=0, strides=None,
                formats=None, names=None, titles=None,
                byteorder=None, aligned=False,
                mask=ma.nomask, hard_mask=False, fill_value=None, keep_mask=True,
                copy=False,
                **options)

Source from the content-addressed store, hash-verified

92 """
93
94 def __new__(cls, shape, dtype=None, buf=None, offset=0, strides=None,
95 formats=None, names=None, titles=None,
96 byteorder=None, aligned=False,
97 mask=ma.nomask, hard_mask=False, fill_value=None, keep_mask=True,
98 copy=False,
99 **options):
100
101 self = np.recarray.__new__(cls, shape, dtype=dtype, buf=buf, offset=offset,
102 strides=strides, formats=formats, names=names,
103 titles=titles, byteorder=byteorder,
104 aligned=aligned,)
105
106 mdtype = ma.make_mask_descr(self.dtype)
107 if mask is ma.nomask or not np.size(mask):
108 if not keep_mask:
109 self._mask = tuple([False] * len(mdtype))
110 else:
111 mask = np.array(mask, copy=copy)
112 if mask.shape != self.shape:
113 (nd, nm) = (self.size, mask.size)
114 if nm == 1:
115 mask = np.resize(mask, self.shape)
116 elif nm == nd:
117 mask = np.reshape(mask, self.shape)
118 else:
119 msg = (f"Mask and data not compatible: data size is {nd},"
120 " mask size is {nm}.")
121 raise ma.MAError(msg)
122 if not keep_mask:
123 self.__setmask__(mask)
124 self._sharedmask = True
125 else:
126 if mask.dtype == mdtype:
127 _mask = mask
128 else:
129 _mask = np.array([tuple([m] * len(mdtype)) for m in mask],
130 dtype=mdtype)
131 self._mask = _mask
132 return self
133
134 def __array_finalize__(self, obj):
135 # Make sure we have a _fieldmask by default

Callers 1

_mrreconstructFunction · 0.45

Calls 3

resizeMethod · 0.80
reshapeMethod · 0.80
__setmask__Method · 0.80

Tested by

no test coverage detected