2010-05-25 19 views
14

Me gustaría agregar un valor al final de mi numpy.array. Vi numpy.append función, pero esto realiza una copia exacta de la matriz original que agrega por fin mi nuevo valor. Me gustaría evitar copias ya que mis arreglos son grandes.Agregar o cambiar el tamaño de numpy array

Estoy utilizando el método resize y luego establezco el último índice disponible para el nuevo valor. ¿Puede confirmar que resize es la mejor manera de agregar un valor al final? ¿No está moviendo memoria de alguna manera?

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

Esto puede ser útil para usted: http://stackoverflow.com/questions/2345518/numpy-array-memory-issue. Pero puede que no :) – mtrw

Respuesta

7

Mi experimento simple momento de cambiar el tamaño de agregación vs mostró que el cambio de tamaño es aproximadamente 3 veces más rápido y es la forma más rápida que puedo pensar para hacer esto. Además, la respuesta a this question parece implicar que cambiar el tamaño de la matriz es el camino a seguir porque está en su lugar.

Veredicto: Uso cambiar el tamaño

P. S. También es posible que desee consultar this discussion de una lista de correo numpy.