Python 在结构化数据数组中保留固定长度的字符字段

Python 在结构化数据数组中保留固定长度的字符字段,python,numpy,pandas,Python,Numpy,Pandas,我有一个带有dtype的numpy结构化数组,看起来像这样: In [20]: rectype = np.dtype([ ....: ('id', '<i4'), # int ....: ('price','<f4'), # float ....: ('flag', 'a1'), # char ....: ('n', 'u1'), # unsigned char ....:

我有一个带有dtype的numpy结构化数组,看起来像这样:

In [20]: rectype = np.dtype([
   ....:         ('id',   '<i4'), # int
   ....:         ('price','<f4'), # float
   ....:         ('flag', 'a1'),  # char
   ....:         ('n',    'u1'),  # unsigned char
   ....:         ('r',    'i2'),  # short
   ....:         ('name', 'a4')   # char[4]
   ....:     ])
这当然不是很有用。在我的例子中,字符串的长度是固定的,我需要以这种方式将其放入数据结构中。是否有任何简单有效的方法可以获取与我开始使用的数据结构/数据类型完全相同的数组?

调用aType:

调用aType:


谢谢当你这样说的时候,这真的是一个令人讨厌的问题。这是一个令人满意的解决办法。尽管如此,我还是认为熊猫往返应该是一种身份转换。谢谢!当你这样说的时候,这真的是一个令人讨厌的问题。这是一个令人满意的解决办法。尽管如此,我还是认为熊猫的往返应该是一种身份转换。
In [21]: nda = np.fromiter([(1, 14.6, 'a', 0, 1, 'car')], dtype=rectype)
In [22]: a2 = pd.DataFrame.from_records(nda).to_records(index=False)
In [23]: a2.dtype
Out[23]: dtype([('id', '<i4'), ('price', '<f4'), ('flag', 'O'), ('n', 'u1'), ('r', '<i2'), ('name', 'O')])
In [24]: rectype.itemsize, a2.dtype.itemsize
Out[24]: (16, 27)
pd.DataFrame.from_records(nda).to_records(index=False).astype(rectype)