2011-10-12 113 views
0

如果我定義了一個結構數組:追加字段到記錄數組?

import numpy as np 
x = np.array([(1, 'O', 1)], 
      dtype=np.dtype([('step', 'int32'), 
          ('symbol', '|S1'), 
          ('index', 'int32')])) 

似乎很好,直到我這樣做:

import numpy.lib.recfunctions as rec 
rec.append_fields(x,'x',x['index']+1) 

給我

TypeError: object of type 'numpy.int32' has no len() 

大概是因爲x.shape是(1),而不是( 1,3)。如何將列添加到此結構化數組中?

+0

奇怪的是,對我來說這工作正常(numpy 1.5)。 – joris

+0

你的代碼適合我。你使用的是什麼版本的Python/NumPy? –

+0

這是numpy的舊版本(例如1.3.0)中的一個錯誤。它似乎隻影響形狀的結構數組(1,)。 – unutbu

回答

1

謝謝大家。在NumPy 1.4.1上,這給了我錯誤,但我剛剛升級到了git 2.0版本,它工作正常。