NumPy 1.14 - numpy.diagonal()

numpy.diagonal




numpy

numpy.diagonal

numpy.diagonal(a, offset=0, axis1=0, axis2=1) [source]

निर्दिष्ट विकर्ण वापस करें।

यदि a 2-D है, तो दिए गए ऑफ़सेट के साथ विकर्ण लौटाता है, अर्थात, प्रपत्र के तत्वों का संग्रह a[i, i+offset] । यदि दो से अधिक आयाम हैं, तो अक्ष axis1 और अक्ष 2 द्वारा निर्दिष्ट अक्षों का उपयोग 2-डी उप-सरणी को निर्धारित करने के लिए किया जाता है जिसका विकर्ण वापस आ जाता है। परिणामी सरणी का आकार axis1 और axis1 को axis1 और सूचकांक को परिणामस्वरूप विकर्ण के आकार के बराबर दाईं ओर निर्धारित किया जा सकता है।

1.7 से पहले के NumPy के संस्करणों में, यह फ़ंक्शन हमेशा एक नया, स्वतंत्र सरणी देता है जिसमें विकर्ण में मानों की एक प्रति होती है।

NumPy 1.7 और 1.8 में, यह विकर्ण की एक प्रति वापस लौटाता है, लेकिन इस तथ्य पर निर्भर करता है। परिणामी सरणी पर लिखना उसी तरह काम करना जारी रखता है जैसा कि वह करता था, लेकिन FutureWarning जारी किया जाता है।

NumPy 1.9 में शुरू होने से यह मूल सरणी पर केवल-पढ़ने का दृश्य देता है। परिणामी सरणी में लिखने का प्रयास करने से त्रुटि उत्पन्न होगी।

कुछ भविष्य के रिलीज में, यह एक पढ़ने / लिखने के दृश्य को लौटाएगा और लौटे हुए सरणी के लिए लेखन आपके मूल सरणी को बदल देगा। दिए गए सरणी में इनपुट सरणी के समान प्रकार होगा।

यदि आप इस फ़ंक्शन द्वारा दिए गए सरणी पर नहीं लिखते हैं, तो आप उपरोक्त सभी को अनदेखा कर सकते हैं।

यदि आप वर्तमान व्यवहार पर निर्भर करते हैं, तो हम सुझाव देते हैं कि लौटे हुए सरणी को स्पष्ट रूप से कॉपी करें, यानी, केवल np.diagonal(a) बजाय np.diagonal(a).copy() उपयोग करें। यह NumPy के भूत और भविष्य दोनों संस्करणों के साथ काम करेगा।

पैरामीटर:

a : array_like

एरे जिसमें से विकर्णों को लिया जाता है।

ऑफसेट : इंट, वैकल्पिक

मुख्य विकर्ण से विकर्ण की शुरुआत। सकारात्मक या नकारात्मक हो सकता है। मुख्य विकर्ण की कमी (को ०)।

ax1 : int, वैकल्पिक

एक्सिस का उपयोग 2-डी उप-सरणियों के पहले अक्ष के रूप में किया जाना चाहिए, जहां से विकर्णों को लिया जाना चाहिए। पहली धुरी की कमी (0)।

ax2 : int, वैकल्पिक

एक्सिस का उपयोग 2-डी उप-सरणियों के दूसरे अक्ष के रूप में किया जाता है जिसमें से विकर्णों को लिया जाना चाहिए। दूसरी अक्ष (1) के लिए चूक।

यह दिखाता है:

array_of_diagonals : ndarray

यदि a 2-डी है और matrix नहीं है, तो विकर्ण युक्त a ही प्रकार का 1-डी सरणी वापस आ जाता है। यदि a matrix , तो पिछड़े संगतता को बनाए रखने के लिए विकर्ण युक्त एक 1-डी सरणी वापस आ जाती है। यदि a.ndim > 2 , तो अक्ष 1 और अक्ष a.ndim > 2 द्वारा निर्दिष्ट आयाम हटा दिए जाते हैं, और विकर्ण के अंत में एक नया अक्ष डाला जाता है।

जन्म देती है:

ValueError

यदि a का आयाम 2 से कम है।

यह भी देखें

diag
MATLAB 1-D और 2-D सरणियों के लिए काम-जैसा है।
diagflat
विकर्ण सरणियों बनाएँ।
trace
विकर्णों के साथ योग।

उदाहरण

>>> a = np.arange(4).reshape(2,2)
>>> a
array([[0, 1],
       [2, 3]])
>>> a.diagonal()
array([0, 3])
>>> a.diagonal(1)
array([1])

एक 3-D उदाहरण:

>>> a = np.arange(8).reshape(2,2,2); a
array([[[0, 1],
        [2, 3]],
       [[4, 5],
        [6, 7]]])
>>> a.diagonal(0, # Main diagonals of two arrays created by skipping
...            0, # across the outer(left)-most axis last and
...            1) # the "middle" (row) axis first.
array([[0, 6],
       [1, 7]])

उप-सरणियाँ जिनके मुख्य विकर्ण हमने अभी प्राप्त किए हैं; ध्यान दें कि प्रत्येक दाएं-सबसे (स्तंभ) अक्ष को ठीक करने से मेल खाती है, और यह है कि विकर्ण पंक्तियों में "पैक" हैं।

>>> a[:,:,0] # main diagonal is [0 6]
array([[0, 2],
       [4, 6]])
>>> a[:,:,1] # main diagonal is [1 7]
array([[1, 3],
       [5, 7]])