Numpy结构化数组:使用字典指定dtype时字符串类型无法识别
如果我用不同的方式来初始化一个结构体数组,且这些结构体的字段名称和类型都相同,会发生什么呢?
>>> a = np.zeros(2, dtype=[('x','int64'),('y','a')])
>>> a
array([(0L, ''), (0L, '')],
dtype=[('x', '<i8'), ('y', 'S')])
用元组列表来初始化是没问题的。
>>> mdtype = dict(names=['x','y'],formats=['int64','a'])
>>> mdtype
{'names': ['x', 'y'], 'formats': ['int64', 'a']}
>>> a = np.zeros(2,dtype=mdtype)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: data type not understood
但是用字典来初始化就不行了,问题出在字符串类型上:
>>> mdtype = dict(names=['x','y'],formats=['int64','float64'])
>>> a = np.zeros(2,dtype=mdtype)
>>>
这里没有问题。有没有什么想法?这是Numpy的bug吗?
Numpy版本:1.8.0
Python 2.7.6(默认,2013年11月10日,19:24:24)[MSC v.1500 64位(AMD64)] 在win32上