python - 将行添加到 numpy recarray

标签 python numpy

有没有一种简单的方法可以在不创建新的 recarray 的情况下将记录/行添加到 numpy recarray?假设我有一个占用 1Gb 内存的 recarray,我希望能够向其中添加一行而不让 python 暂时占用 2Gb 内存。

最佳答案

您可以调用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)]

关于python - 将行添加到 numpy recarray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598251/

相关文章:

python - 有没有一种方法可以找到给定 float 列表的给定整数部分的最大小数部分?

python - 标准化/缩放作为 python 中的预处理步骤

python - 将图例添加到具有二进制数据的 numpy 数组的 matplotlib 图

python - ACCESS_REFUSED - 使用身份验证机制 AMQPLAIN 拒绝登录。有关详细信息,请参阅代理日志文件

python - 使用 pandas 在 Excel 文件中定义列

python - scikit learn 中不同数据类型的自定义管道

Python如何使用字符串键索引多维数组,如字典

python - 排序化学元组和系数

python - QuantLib-Python 中的现金结算掉期期权定价

Python Django 2.0 十进制字段 "Ensure that there are no more than 3 digits before the decimal point"