Movatterモバイル変換


[0]ホーム

URL:


SciPy

numpy.ma.MaskedArray.view

MaskedArray.view(dtype=None,type=None)[source]

New view of array with the same data.

Parameters:
dtype:data-type or ndarray sub-class, optional

Data-type descriptor of the returned view, e.g., float32 or int16. Thedefault, None, results in the view having the same data-type asa.This argument can also be specified as an ndarray sub-class, whichthen specifies the type of the returned object (this is equivalent tosetting thetype parameter).

type:Python type, optional

Type of the returned view, e.g., ndarray or matrix. Again, thedefault None results in type preservation.

Notes

a.view() is used two different ways:

a.view(some_dtype) ora.view(dtype=some_dtype) constructs a viewof the array’s memory with a different data-type. This can cause areinterpretation of the bytes of memory.

a.view(ndarray_subclass) ora.view(type=ndarray_subclass) justreturns an instance ofndarray_subclass that looks at the same array(same shape, dtype, etc.) This does not cause a reinterpretation of thememory.

Fora.view(some_dtype), ifsome_dtype has a different number ofbytes per entry than the previous dtype (for example, converting aregular array to a structured array), then the behavior of the viewcannot be predicted just from the superficial appearance ofa (shownbyprint(a)). It also depends on exactly howa is stored inmemory. Therefore ifa is C-ordered versus fortran-ordered, versusdefined as a slice or transpose, etc., the view may give differentresults.

Examples

>>>x=np.array([(1,2)],dtype=[('a',np.int8),('b',np.int8)])

Viewing array data using a different type and dtype:

>>>y=x.view(dtype=np.int16,type=np.matrix)>>>ymatrix([[513]], dtype=int16)>>>print(type(y))<class 'numpy.matrixlib.defmatrix.matrix'>

Creating a view on a structured array so it can be used in calculations

>>>x=np.array([(1,2),(3,4)],dtype=[('a',np.int8),('b',np.int8)])>>>xv=x.view(dtype=np.int8).reshape(-1,2)>>>xvarray([[1, 2],       [3, 4]], dtype=int8)>>>xv.mean(0)array([ 2.,  3.])

Making changes to the view changes the underlying array

>>>xv[0,1]=20>>>print(x)[(1, 20) (3, 4)]

Using a view to convert an array to a recarray:

>>>z=x.view(np.recarray)>>>z.aarray([1], dtype=int8)

Views share data:

>>>x[0]=(9,10)>>>z[0](9, 10)

Views that change the dtype size (bytes per entry) should normally beavoided on arrays defined by slices, transposes, fortran-ordering, etc.:

>>>x=np.array([[1,2,3],[4,5,6]],dtype=np.int16)>>>y=x[:,0:2]>>>yarray([[1, 2],       [4, 5]], dtype=int16)>>>y.view(dtype=[('width',np.int16),('length',np.int16)])Traceback (most recent call last):  File"<stdin>", line1, in<module>ValueError:new type not compatible with array.>>>z=y.copy()>>>z.view(dtype=[('width',np.int16),('length',np.int16)])array([[(1, 2)],       [(4, 5)]], dtype=[('width', '<i2'), ('length', '<i2')])

Next topic

numpy.ma.MaskedArray.astype

Quick search

  • © Copyright 2008-2018, The SciPy community.
  • Last updated on Jul 24, 2018.
  • Created usingSphinx 1.6.6.

[8]ページ先頭

©2009-2025 Movatter.jp