6

新しい再配列を作成せずに、レコード/行をnumpy再配列に追加する簡単な方法はありますか?たとえば、メモリに1Gbを使用する再配列があり、Pythonが一時的に2Gbのメモリを使用することなく、行を追加できるようにしたいとします。

4

1 に答える 1

10

もう1つの行がある図形で呼び出し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)]
于 2009-10-21T01:32:54.743 に答える