मैं समझता हूँ कि कैसे numpy साथ -1 डी सरणी (रेखीय बीजगणित में वेक्टर) को संभालने के लिए कोशिश के साथ -1 डी सरणी। निम्न उदाहरण में, मैं दो numpy.array ए और बी उत्पन्न: 1 पंक्ति, 3 कॉलम, लेकिन numpy के लिए नहीं:numpy: विभिन्न आकार
>>> import numpy as np
>>> a = np.array([1,2,3])
>>> b = np.array([[1],[2],[3]]).reshape(1,3)
>>> a.shape
(3,)
>>> b.shape
(1, 3)
मेरे लिए, ए और बी अनुसार रेखीय बीजगणित परिभाषा एक ही आकार की है।
अब, numpy डॉट उत्पाद:
>>> np.dot(a,a)
14
>>> np.dot(b,a)
array([14])
>>> np.dot(b,b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: objects are not aligned
मैं तीन अलग-अलग उत्पादन की है। डॉट (ए, ए) और डॉट (बी, ए) के बीच क्या अंतर है? क्यों डॉट (बी, बी) काम नहीं करता है?
मैं भी उन डॉट उत्पादों के साथ कुछ differencies है:
>>> c = np.ones(9).reshape(3,3)
>>> np.dot(a,c)
array([ 6., 6., 6.])
>>> np.dot(b,c)
array([[ 6., 6., 6.]])
उत्तर के लिए धन्यवाद। तो अगर मैं कुछ रैखिक बीजगणित numpy के साथ करना चाहता हूँ तो सबसे अच्छा अभ्यास क्या है? मेरे सभी वेक्टर को 2 डी numpy.array में कनवर्ट करें? मैं दो अलग-अलग आकार से थोड़ा उलझन में हूं ... – Marcel
मैं खुद को बहुत अधिक रैखिक बीजगणित नहीं कर रहा हूं, लेकिन मुझे लगता है कि यह इस बात पर निर्भर करता है कि आप वास्तव में क्या करना चाहते हैं। बस वेक्टर उत्पाद और अन्य सरल कुशलता/गणना, फिर 1 डी ठीक है। यदि आप मैट्रिक्स गणना आदि करना चाहते हैं, तो आपको 2 डी का उपयोग करना चाहिए। – joris
सबसे अच्छी रणनीति वैक्टर और 2 डी सरणियों के लिए 1 डी सरणियों का उपयोग करने के मैट्रिक्स प्रतिनिधित्व करने के लिए किया जाएगा। आकार '(1,3)' के साथ 2 डी सरणी जैसे निर्माण मुख्य रूप से सरणी जादू के लिए आवश्यक हैं, लेकिन मानक रैखिक बीजगणित सामग्री नहीं है। रेखीय बीजगणित के संदर्भ में यह एक '1x3' मैट्रिक्स की नहीं बहुत उपयोगी वस्तु के अनुरूप होगा। – flonk