Есть ли простой способ добавить запись/строку в numpy recarray, не создавая новую повторяемость? Предположим, у меня есть повторная запись, которая занимает 1 Гб в памяти, я хочу иметь возможность добавить к ней строку, не имея на время python 2Gb памяти.Добавление строки в numpy recarray
6
A
ответ
10
Вы можете позвонить yourrecarray.resize
с формой, которая имеет еще одну строку, а затем назначить эту новую строку. Конечно. numpy
мощь еще выделить совершенно новую память, если она просто не имеет возможности для роста массива на месте, но, по крайней мере, у вас есть шанс! -)
Поскольку пример запрашивали, вот, модифицировано от канонического 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)]
Смежные вопросы
- 1. numpy recarray строки переменной длины
- 2. numpy datetime64 в recarray
- 3. Добавление поля datetime в recarray
- 4. автоматически решить Numpy recarray
- 5. python numpy recarray join
- 6. Нормализовать/стандартизировать numpy recarray
- 7. Список кортежей для Numpy recarray
- 8. Python Numpy recarray sort bidirectional
- 9. Как изменить dtype numpy recarray?
- 10. Выбор столбцов из numpy recarray
- 11. Нарезка numpy recarray в «пустых» строках
- 12. сравнивающие строки в recarray
- 13. Преобразование (часть) numpy recarray в массив 2d?
- 14. Автоматическая длина строки в recarray
- 15. Доступ к Numpy Recarray через C-API
- 16. Efficient GROUP BY запроса на Numpy recarray
- 17. Ошибка Numpy? Как выровнять массив записей numpy («recarray»)?
- 18. Как преобразовать подмножество numpy recarray в непрерывный массив?
- 19. Добавить 2-й массив (поле) в numpy recarray
- 20. Добавление новой строки в массив numpy
- 21. Панды DataFrame от мультииндексных и NumPy структурированного массива (recarray)
- 22. Fancy индексирования Numpy recarray потеряла ссылку после присвоения
- 23. NumPy «record array» или «structured array» или «recarray»
- 24. Как сделать numpy recarray с datatypes (datetime, float)?
- 25. Python Numpy Структурированные Array (recarray) присвоения значений кружочками
- 26. python numpy left join recarray с дублированным значением ключа
- 27. subclassed пустой numpy recarray, потерявший его тип и добавленные атрибуты в numpy 1.8
- 28. логическое добавление в numpy
- 29. Добавление массивов в numpy
- 30. Добавление матриц в numpy
Не могли бы вы показать демонстрационный код? Моя попытка вызвать arr.resize() закончилась ValueError: не может изменить размер этого массива: он не владеет своими данными – unutbu
@unutbu, конечно, отредактированный ответ для простого примера. Возможно, вы встречаете вопросы, обсуждаемые в этой теме: http://aspn.activestate.com/ASPN/Mail/Message/numpy-discussion/3042521 - тогда вы можете исправить их, как упоминает Трэвис Олифант, добавив refcheck = 0 для вызова изменения размера (если вы не поделили данные, и в этом случае не может быть никакого изменения размера на месте больше (обратите внимание, что то, что Тревис упоминает как особенность главы SVN numpy, было частью регулярно выпущенного numpy для долгое время - эта нить составляет 3+ года ;-) –
Спасибо! a.resize (3, refcheck = 0) сделал трюк для меня. – unutbu