/ / पाइथन में ऐरे स्टैकिंग / कंसीनेशन एरर - पायथन, एरेस, सुपीरियर, कॉनकैटेनशन

पाइथन में ऐरे स्टैकिंग / कॉन्सटेनेशन त्रुटि - पायथन, सरणी, numpy, concatenation

मैं दो सरणियों को संक्षिप्त करने की कोशिश कर रहा हूं: ए और बी, जहां

a.shape
(1460,10)
b.shape
(1460,)

मैंने hstack और concatenate का उपयोग करने की कोशिश की:

np.hstack((a,b))
c=np.concatenate(a,b,0)

मैं त्रुटि के साथ फंस गया हूं

 ValueError: all the input arrays must have same number of dimensions

कृपया 1460 x 11 के आयामों के साथ समवर्ती और सृजन ग के लिए मेरा मार्गदर्शन करें।

उत्तर:

उत्तर № 1 के लिए 1

प्रयत्न

b = np.expand_dims( b,axis=1 )

फिर

np.hstack((a,b))

या

np.concatenate( (a,b) , axis=1)

ठीक से काम करेगा।


उत्तर № 2 के लिए 1

np.c_[a, b] अंतिम धुरी के साथ मिलकर। प्रति दस्तावेज़,

... arrays के बाद उनके पिछले अक्ष के साथ खड़ी हो जाएगी आकार में कम से कम 2-डी को 1 पोस्ट-पेंडिंग के साथ अपग्रेड किया जा रहा है

जबसे b आकार है (1460,) इसका आकार अपग्रेड हो जाता है (1460, 1) अंतिम अक्ष के साथ संघनन से पहले।


In [26]: c = np.c_[a,b]

In [27]: c.shape
Out[27]: (1460, 11)

उत्तर № 3 के लिए 1

सबसे बुनियादी ऑपरेशन जो काम करता है:

np.concatenate((a,b[:,None]),axis=1)

The [:,None] बिट फेरा b में (1060,1) सरणी. अब दोनों सरणियों के 1 आयाम मैच, और आप आसानी से 2 पर concatenate कर सकते हैं.

वहाँ के लिए 2 आयाम जोड़ने के एक कई तरीके b, जैसे कि reshape तथा expanddims. hstack का उपयोग करता है atleast_1d जो इस मामले में मदद नहीं करता है. atleast_2d जोड़ता है None गलत पक्ष पर. मैं दृढ़ता से सीखने की वकालत [:,None] वाक्य - विन्यास।

एक बार सरणियां दोनों 2d और सही आयाम पर मैच कर रहे हैं, concatenation आसान है.