J'ai un numpy_array. Quelque chose comme [ a b c ]
.
Et puis je veux l'ajouter dans un autre tableau NumPy (tout comme nous créons une liste de listes). Comment créer un tableau de tableaux NumPy contenant des tableaux NumPy?
J'ai essayé de faire ce qui suit sans aucune chance
>>> M = np.array([])
>>> M
array([], dtype=float64)
>>> M.append(a,axis=0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'append'
>>> a
array([1, 2, 3])
Réponses:
ou ca:
la source
vstack()
idée de Sven . Vous savez que vous pouvez créer le tableau avecarray([[1,2,3],[2,3,4]])
, non?numpy.vstack
peut accepter plus de 2 tableaux dans l'argument de séquence. Ainsi, si vous avez besoin de combiner plus de 2 tableaux, vstack est plus pratique.concatenate
peut également prendre plusieurs tableauxEh bien, le message d'erreur dit tout: les tableaux NumPy n'ont pas de
append()
méthode. Il existenumpy.append()
cependant une fonction gratuite :Cela créera un nouveau tableau au lieu de muter
M
sur place. Notez que l'utilisationnumpy.append()
implique la copie des deux tableaux. Vous obtiendrez un code plus performant si vous utilisez des tableaux NumPy de taille fixe.la source
numpy.vstack()
.Vous pouvez utiliser
numpy.append()
...Cela ne créera pas deux tableaux séparés mais ajoutera deux tableaux dans un tableau à une seule dimension.
la source
Sven a tout dit, soyez très prudent en raison des ajustements de type automatiques lorsque append est appelé.
Comme vous le voyez, basé sur le contenu, le dtype est passé de int64 à float32, puis à S1
la source
J'ai trouvé ce lien en cherchant quelque chose de légèrement différent, comment commencer à ajouter des objets de tableau à un tableau numpy vide , mais j'ai essayé toutes les solutions de cette page en vain.
Ensuite, j'ai trouvé cette question et réponse: Comment ajouter une nouvelle ligne à un tableau numpy vide
L'essentiel ici:
Ensuite, vous pouvez utiliser concaténer pour ajouter des lignes comme ceci:
arr = np.concatenate( ( arr, [[x, y, z]] ) , axis=0)
Voir aussi https://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html
la source
En fait, on peut toujours créer une liste ordinaire de tableaux numpy et la convertir plus tard.
la source
J'ai eu le même problème, et je ne pouvais pas commenter la réponse de @Sven Marnach (pas assez de représentants, bon sang, je me souviens quand Stackoverflow a commencé ...) de toute façon.
Ajout d'une liste de nombres aléatoires à une matrice 10 X 10.
En utilisant np.zeros (), un tableau est créé avec 1 x 10 zéros.
Ensuite, une liste de 10 nombres aléatoires est créée en utilisant np.random et assignée à randomList. La boucle l'empile 10 de haut. Nous devons juste nous rappeler de supprimer la première entrée vide.
Donc dans une fonction:
un tableau 7 x 7 utilisant des nombres aléatoires de 0 à 1000
la source
Si je comprends votre question, voici une solution. Dites que vous avez:
alors voici un peu de code ...
Qui conduit à:
la source
Essayez ce code:
Vous pouvez également utiliser un tableau au lieu de "a"
la source