NumPy 1.14 - numpy.diagonal()
numpy.diagonal

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 से कम है।
यह भी देखें
उदाहरण
>>> 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]])