152 votes

Ajouter un seul élément au tableau dans numpy

J'ai un tableau numpy contenant :

 [1, 2, 3]

Je veux créer un tableau contenant :

 [1, 2, 3, 1]

C'est-à-dire que je veux ajouter le premier élément à la fin du tableau.

J'ai essayé l'évidence :

 np.concatenate((a, a[0]))

Mais j'obtiens une erreur disant ValueError: arrays must have same number of dimensions

Je ne comprends pas cela - les tableaux ne sont que des tableaux 1d.

205voto

steabert Points 2537

append() crée un nouveau tableau qui peut être l'ancien tableau avec l'élément ajouté.

Je pense qu'il est plus normal d'utiliser la bonne méthode pour ajouter un élément :

 a = numpy.append(a, a[0])

14voto

DMA57361 Points 1206

a[0] n'est pas un tableau, c'est le premier élément de a et n'a donc aucune dimension.

Essayez d'utiliser à la place a[0:1] , qui renverra le premier élément de a intérieur d'un seul tableau d'éléments.

14voto

reader_1000 Points 1254

Essaye ça:

 np.concatenate((a, np.array([a[0]])))

http://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html

concaténer a besoin que les deux éléments soient des tableaux numpy ; cependant, a[0] n'est pas un tableau. C'est pourquoi cela ne fonctionne pas.

12voto

user3105448 Points 11

Cette commande,

 numpy.append(a, a[0])

ne modifie pas le tableau a Cependant, il renvoie un nouveau tableau modifié. Donc, si une a est requise, alors ce qui suit doit être utilisé.

 a = numpy.append(a, a[0])

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X