method
ma.MaskedArray.view(dtype=None, type=None, fill_value=None)
Return a view of the MaskedArray data.
Parameters:dtypedata-type or ndarray sub-class, optionalData-type descriptor of the returned view, e.g., float32 or int16. The default, None, results in the view having the same data-type as a. As with ndarray.view, dtype can also be specified as an ndarray sub-class, which then specifies the type of the returned object (this is equivalent to setting the type parameter).
typePython type, optionalType of the returned view, either ndarray or a subclass. The default None results in type preservation.
fill_valuescalar, optionalThe value to use for invalid entries (None by default). If None, then this argument is inferred from the passed
, or in its absence the original array, as discussed in the notes below.
Notes
a.view() is used two different ways:
a.view(some_dtype) or a.view(dtype=some_dtype) constructs a view of the array’s memory with a different data-type. This can cause a reinterpretation of the bytes of memory.
a.view(ndarray_subclass) or a.view(type=ndarray_subclass) just returns an instance of ndarray_subclass that looks at the same array (same shape, dtype, etc.) This does not cause a reinterpretation of the memory.
If
is not specified, but
is specified (and is not an ndarray sub-class), the
of the MaskedArray will be reset. If neither
nor
are specified (or if
is an ndarray sub-class), then the fill value is preserved. Finally, if
is specified, but
is not, the fill value is set to the specified value.
For a.view(some_dtype), if some_dtype has a different number of bytes per entry than the previous dtype (for example, converting a regular array to a structured array), then the behavior of the view cannot be predicted just from the superficial appearance of a (shown by print(a)). It also depends on exactly how a is stored in memory. Therefore if a is C-ordered versus fortran-ordered, versus defined as a slice or transpose, etc., the view may give different results.
Examples
>>> importnumpyasnp>>> a=np.ma.array([1.0,2.0,3.0],mask=[0,1,0])>>> amasked_array(data=[1.0, --, 3.0], mask=[False, True, False], fill_value=1e+20)Use fill_value to set a custom fill value on the view without copying the data:
>>> a.view(fill_value=-999.0)masked_array(data=[1.0, --, 3.0], mask=[False, True, False], fill_value=-999.0)View as a plain
— the mask is not preserved:
>>> a.view(np.ndarray)array([1., 2., 3.])