簡體   English   中英

將行添加到numpy重新排列

[英]Adding row to numpy recarray

是否有一種簡單的方法可以將記錄/行添加到numpy重新排列而無需創建新的重新排列? 假設我有一個在內存中占用1Gb的重新排列,我希望能夠在沒有python暫時占用2Gb內存的情況下添加一行。

您可以使用另外一行的形狀調用yourrecarray.resize ,然后分配給該新行。 當然。 numpy 可能仍然必須分配全新的內存,如果它沒有空間來就地增長陣列,但至少你有機會! - )

由於請求了一個示例,這里是修改了規范示例列表 ...:

>>> 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)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM