numpy.ma.MaskedArray.view — NumPy v2.6.dev0 Manual

method

ma.MaskedArray.view(dtype=None, type=None, fill_value=None)

[source]

#

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

dtype

, 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

fill_value

is not specified, but

dtype

is specified (and is not an ndarray sub-class), the

fill_value

of the MaskedArray will be reset. If neither

fill_value

nor

dtype

are specified (or if

dtype

is an ndarray sub-class), then the fill value is preserved. Finally, if

fill_value

is specified, but

dtype

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

numpy.ndarray

— the mask is not preserved:

>>> a.view(np.ndarray)array([1., 2., 3.])