2011-10-12 73 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版本,它工作正常。