J'essaie de concaténer deux tableaux: a et b, où
a.shape
(1460,10)
b.shape
(1460,)
J'ai essayé d'utiliser hstack et concaténer en tant que:
np.hstack((a,b))
c=np.concatenate(a,b,0)
Je suis coincé avec l'erreur
ValueError: all the input arrays must have same number of dimensions
Veuillez me guider pour la concaténation et la génération du tableau c de dimensions 1460 x 11.
Réponses:
1 pour la réponse № 1Essayer
b = np.expand_dims( b,axis=1 )
puis
np.hstack((a,b))
ou
np.concatenate( (a,b) , axis=1)
fonctionnera correctement.
1 pour la réponse № 2
np.c_[a, b]
concatène le long du dernier axe. Par les docs,
... les tableaux seront empilés le long de leur dernier axe après mise à niveau à au moins 2-D avec 1 "s post-suspendu à la forme
Depuis b
a la forme (1460,)
sa forme est améliorée pour (1460, 1)
avant la concaténation le long du dernier axe.
In [26]: c = np.c_[a,b]
In [27]: c.shape
Out[27]: (1460, 11)
1 pour la réponse № 3
L'opération la plus basique qui fonctionne est:
np.concatenate((a,b[:,None]),axis=1)
le [:,None]
peu tourne b
dans une (1060,1)
tableau. Les premières dimensions des deux tableaux correspondent, et vous pouvez facilement concaténer le deuxième.
Il y a plusieurs façons d’ajouter la 2e dimension à b
, tel que reshape
et expanddims
. hstack
les usages atleast_1d
ce qui n'aide pas dans ce cas. atleast_2d
ajoute le None
du mauvais côté. Je préconise fortement l'apprentissage de la [:,None]
syntaxe.
Une fois que les tableaux sont tous les deux en 2D et correspondent aux dimensions correctes, la concaténation est facile.