मैं दो सरणियों को संक्षिप्त करने की कोशिश कर रहा हूं: ए और बी, जहां
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 आसान है.