2010-05-25 10 views
14

Je souhaite ajouter une valeur à la fin de mon numpy.array. J'ai vu numpy.append fonction mais cela effectue une copie exacte du tableau original en ajoutant enfin ma nouvelle valeur. Je voudrais éviter les copies car mes tableaux sont grands. J'utilise la méthode resize, puis définissez le dernier index disponible pour la nouvelle valeur. Pouvez-vous confirmer que resize est le meilleur moyen d'ajouter une valeur à la fin? Ne déplace-t-il pas la mémoire quelque part?Ajout ou redimensionnement pour un tableau numpy

oldSize = myArray,shape(0) 
myArray.resize(oldSize + 1) 
myArray[oldSize] = newValue 
+0

Ceci peut vous être utile: http://stackoverflow.com/questions/2345518/numpy-array-memory-issue. Mais ça ne peut pas :) – mtrw

Répondre

7

Mon expérience simple de synchronisation de append par rapport Redimensionnement a montré que le redimensionnement est environ 3 fois plus rapide et son plus rapide que la manière que je peux penser à le faire. En outre, la réponse à this question semble impliquer que redimensionner le tableau est la voie à suivre car il est en place.

Verdict: Utilisez redimensionner

post-scriptum Vous pouvez également vouloir vérifier this discussion à partir d'une liste de diffusion numpy.