NumPy 1.14 - MaskedArray.view()

numpy.ma.MaskedArray.view




numpy

numpy.ma.MaskedArray.view

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

उसी डेटा के साथ सरणी का नया दृश्य।

पैरामीटर:

dtype : data-type या ndarray उप-वर्ग, वैकल्पिक

लौटे हुए दृश्य का डेटा-प्रकार का विवरण, उदाहरण के लिए, फ्लोट 32 या इंट 16। डिफ़ॉल्ट, कोई नहीं, दृश्य में परिणाम एक ही डेटा-प्रकार के रूप में a । इस तर्क को एक ndarray उप-वर्ग के रूप में भी निर्दिष्ट किया जा सकता है, जो फिर लौटे ऑब्जेक्ट के प्रकार को निर्दिष्ट करता है (यह type पैरामीटर सेट करने के बराबर है)।

प्रकार : अजगर प्रकार, वैकल्पिक

लौटे हुए दृश्य का प्रकार, उदा। Ndarray या मैट्रिक्स। फिर, डिफ़ॉल्ट कोई भी प्रकार के संरक्षण में परिणाम है।

टिप्पणियाँ

a.view() का उपयोग दो अलग-अलग तरीकों से किया जाता है:

a.view(some_dtype) या a.view(dtype=some_dtype) किसी भिन्न डेटा-प्रकार के साथ सरणी की मेमोरी के दृश्य का निर्माण करता है। यह स्मृति के बाइट्स की पुनर्व्याख्या का कारण बन सकता है।

a.view(ndarray_subclass) या a.view(type=ndarray_subclass)

a.view(some_dtype) , यदि some_dtype में पिछले dtype (उदाहरण के लिए, एक नियमित सरणी को एक संरचित सरणी में परिवर्तित करने) की तुलना में प्रति प्रविष्टि बाइट्स की एक अलग संख्या है, तो दृश्य का व्यवहार केवल सतही उपस्थिति से भविष्यवाणी नहीं की जा सकती a ( print(a) द्वारा दिखाया गया है print(a) )। यह इस बात पर भी निर्भर करता है कि मेमोरी में कैसे संग्रहीत किया जाता है। इसलिए यदि सी-ऑर्डर बनाम फोरट्रान-ऑर्डर, बनाम एक स्लाइस या ट्रांसपोज़, आदि के रूप में परिभाषित किया गया है, तो दृश्य अलग-अलग परिणाम दे सकता है।

उदाहरण

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

एक अलग प्रकार और dtype का उपयोग करके सरणी डेटा देखना:

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

एक संरचित सरणी पर एक दृश्य बनाना ताकि इसका उपयोग गणनाओं में किया जा सके

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

दृश्य में परिवर्तन करने से अंतर्निहित सरणी में परिवर्तन होता है

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

किसी सरणी को पुनरावर्तन में बदलने के लिए एक दृश्य का उपयोग करना:

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

दृश्य साझा डेटा:

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

दृश्य जो dtype आकार को बदलते हैं (प्रति प्रविष्टि बाइट्स) को आमतौर पर स्लाइस, ट्रांज़ोज़, फोरट्रान-ऑर्डरिंग आदि द्वारा परिभाषित सरणियों से बचना चाहिए:

>>> x = np.array([[1,2,3],[4,5,6]], dtype=np.int16)
>>> y = x[:, 0:2]
>>> y
array([[1, 2],
       [4, 5]], dtype=int16)
>>> y.view(dtype=[('width', np.int16), ('length', np.int16)])
Traceback (most recent call last):
  File "<stdin>", line 1, 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')])