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

Method __new__

numpy/ma/mrecords.py:104–142  ·  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=nomask, hard_mask=False, fill_value=None, keep_mask=True,
                copy=False,
                **options)

Source from the content-addressed store, hash-verified

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

Callers 1

_mrreconstructFunction · 0.45

Calls 5

MAErrorClass · 0.90
sizeMethod · 0.80
reshapeMethod · 0.80
__setmask__Method · 0.80
resizeMethod · 0.45

Tested by

no test coverage detected