Python Numpy结构化数组:使用dict指定数据类型时无法理解字符串类型

Python Numpy结构化数组:使用dict指定数据类型时无法理解字符串类型,python,numpy,structured-array,Python,Numpy,Structured Array,如果我以不同的方式初始化具有相同字段名和类型的结构数组,会发生以下情况: >>> a = np.zeros(2, dtype=[('x','int64'),('y','a')]) >>> a array([(0L, ''), (0L, '')], dtype=[('x', '<i8'), ('y', 'S')]) 没问题。有什么想法吗?这是个小虫子吗 Numpy版本:1.8.0 win32上的Python 2.7.6(默认,2013年11月10日,1

如果我以不同的方式初始化具有相同字段名和类型的结构数组,会发生以下情况:

>>> a = np.zeros(2, dtype=[('x','int64'),('y','a')])
>>> a
array([(0L, ''), (0L, '')],
 dtype=[('x', '<i8'), ('y', 'S')])
没问题。有什么想法吗?这是个小虫子吗

Numpy版本:1.8.0


win32上的Python 2.7.6(默认,2013年11月10日,19:24:24)[MSC v.1500 64位(AMD64)]作为一种解决方法,如果指定字符串宽度:

>>> mdtype = dict(names=['x','y'],formats=['int64','a1'])
>>> np.dtype(mdtype)
dtype([('x', '<i8'), ('y', 'S1')])
>mdtype=dict(名称=['x','y',格式=['int64','a1'])
>>>np.dtype(mdtype)

dtype([('x','对不起,忘了回复这个。谢谢你的建议,但不幸的是我事先不知道字符串的宽度。
>>> mdtype = dict(names=['x','y'],formats=['int64','float64'])
>>> a = np.zeros(2,dtype=mdtype)
>>>
>>> mdtype = dict(names=['x','y'],formats=['int64','a1'])
>>> np.dtype(mdtype)
dtype([('x', '<i8'), ('y', 'S1')])