¿Existe alguna manera fácil de agregar un registro/fila a una repetición numpy sin crear una nueva versión de recarray? Digamos que tengo una recarray que toma 1Gb en memoria, quiero poder agregarle una fila sin tener que tomar python 2Gb de memoria temporalmente.Agregar row a numpy recarray
6
A
Respuesta
10
Puede llamar al yourrecarray.resize
con una forma que tiene una fila más, luego asigne a esa nueva fila. Por supuesto. numpy
fuerza todavía tiene que asignar completamente nueva memoria si simplemente no tiene espacio para crecer la matriz en el lugar, pero al menos tiene una posibilidad! -)
Desde que se solicitó un ejemplo, aquí viene, modificado fuera del canónico example list ...:
>>> import numpy
>>> mydescriptor = {'names': ('gender','age','weight'), 'formats': ('S1', 'f4', 'f4')}
>>> a = numpy.array([('M',64.0,75.0),('F',25.0,60.0)], dtype=mydescriptor)
>>> print a
[('M', 64.0, 75.0) ('F', 25.0, 60.0)]
>>> a.shape
(2,)
>>> a.resize(3)
>>> a.shape
(3,)
>>> print a
[('M', 64.0, 75.0) ('F', 25.0, 60.0) ('', 0.0, 0.0)]
>>> a[2] = ('X', 17.0, 61.5)
>>> print a
[('M', 64.0, 75.0) ('F', 25.0, 60.0) ('X', 17.0, 61.5)]
Cuestiones relacionadas
- 1. cadenas de recarray numpy de longitud variable
- 2. Normalize/Standardize a nuamy recarray
- 3. Python Numpy matriz estructurado (recArray) la asignación de valores en rodajas
- 4. ¿Cómo agregar row-span en NSTableView basado en vistas?
- 5. Obtener recarray atributos/columnas python
- 6. Agregar encabezados de fila/columna a Numpy Matrices
- 7. Agregar un campo a una matriz numpy estructurada
- 8. Ordenar una matriz de python/recarray por la columna
- 9. Div table-row Border?
- 10. row datagridview click
- 11. apilamiento recarrays numpy sin perder su recarrayness
- 12. jQuery: encuentra próxima table-row
- 13. Android Predeterminado Listview row Diseño
- 14. Desventajas de MySQL Row Locking
- 15. TypeError: row no está definido
- 16. Android ListView Refresh Single Row
- 17. Accediendo a las columnas de la matriz de registro NumPy en Cython
- 18. ¿Cómo cambiar el tipo de un nucky recarray?
- 19. Asp.Net Gridview Buttonfield get Row Data
- 20. MS SQL Server Row GUID Columna
- 21. Python escritura una matriz numpy a un archivo CSV
- 22. Traducir matlab a python/numpy
- 23. PHP - Multiple while ($ row = mysql_fetch_array ($ variable)) {} ERRORES
- 24. Agregar o cambiar el tamaño de numpy array
- 25. Table Row Box-Shadow on Hover (Webkit)
- 26. WPF datagrid selected row clicked event?
- 27. PHP/MySQL insert row then get 'id'
- 28. Cómo ocultar C# DataGridView predeterminado * row?
- 29. MySql php: compruebe si Row existe
- 30. python numpy savetxt
¿Podría mostrar algún código de demostración? Mi intento de llamar a arr.resize() terminó con ValueError: no se puede cambiar el tamaño de esta matriz: no posee sus datos – unutbu
@unutbu, seguro, la respuesta editada para proporcionar un ejemplo simple. Puede encontrarse con problemas discutidos en este hilo: http://aspn.activestate.com/ASPN/Mail/Message/numpy-discussion/3042521 - luego puede solucionarlos, como menciona Travis Oliphant allí, agregando el refcheck = 0 argumento para cambiar el tamaño de la llamada (a menos que HAYA compartido los datos, en cuyo caso no puede haber cambio de tamaño en el lugar más (tenga en cuenta que lo que Travis menciona como una característica del jefe de numpy del SVN ha sido parte del numpy publicado regularmente para desde hace mucho tiempo - ese hilo tiene más de 3 años ;-). –
Gracias! a.resize (3, refcheck = 0) hice el truco para mí. – unutbu