我有一个结构化的阵列,例如:NumPy的:以编程方式修改D型结构化阵列
import numpy as np
orig_type = np.dtype([('Col1', '<u4'), ('Col2', '<i4'), ('Col3', '<f8')])
sa = np.empty(4, dtype=orig_type)
其中sa
样子(随机数据):
array([(11772880L, 14527168, 1.079593371731406e-307),
(14528064L, 21648608, 1.9202565460908188e-302),
(21651072L, 21647712, 1.113579933986867e-305),
(10374784L, 1918987381, 3.4871913811200906e-304)],
dtype=[('Col1', '<u4'), ('Col2', '<i4'), ('Col3', '<f8')])
现在,在我的程序,我以某种方式决定我需要将'Col2'的数据类型更改为一个字符串。我怎样才能修改dtype
要做到这一点,例如非编程的方法:
new_type = np.dtype([('Col1', '<u4'), ('Col2', '|S10'), ('Col3', '<f8')])
new_sa = sa.astype(new_type)
其中new_sa
现在看起来,这是伟大的:
array([(11772880L, '14527168', 1.079593371731406e-307),
(14528064L, '21648608', 1.9202565460908188e-302),
(21651072L, '21647712', 1.113579933986867e-305),
(10374784L, '1918987381', 3.4871913811200906e-304)],
dtype=[('Col1', '<u4'), ('Col2', '|S10'), ('Col3', '<f8')])
如何编程修改orig_type
到new_type
? (不用担心长度为|S10
)。有没有“简单”的方法,还是我需要一个for循环来构造一个新的构造函数对象?
'.descr'就是我一直在寻找,谢谢! – 2011-05-07 05:16:45