从下面的ipdb日志中可以看到,额外的零日期被添加到pre和post数组中。 我怎样才能解决这个问题?为什么会这样
ipdb> pre
(datetime.datetime(2013, 12, 31, 9, 58), 0, 1)
ipdb> post
(datetime.datetime(2013, 12, 31, 13, 15), 0, 1)
ipdb> RDT
RDT = [(COL_TIME, 'M8[s]'), (COL_STATUS, 'b'), (COL_MOBILE, 'b')]
ipdb> RMATCH
RMATCH = [(COL_PRE, RDT), (COL_POST, RDT)]
ipdb> ppre, ppost = np.array(pre, dtype=RDT), np.array(post, dtype=RDT)
ipdb> ppre
array((datetime.datetime(2013, 12, 31, 9, 58), 0, 1),
dtype=[('TIME', '<M8[s]'), ('STATUS', 'i1'), ('MOBILE', 'i1')])
ipdb> np.array([ppre, ppost], dtype=RMATCH)
array([ ((datetime.datetime(2013, 12, 31, 9, 58), 0, 1), (datetime.datetime(1970, 1, 1, 0, 0), 0, 0)),
((datetime.datetime(2013, 12, 31, 13, 15), 0, 1), (datetime.datetime(1970, 1, 1, 0, 0), 0, 0))],
dtype=[('PRE', [('TIME', '<M8[s]'), ('STATUS', 'i1'), ('MOBILE', 'i1')]), ('POST', [('TIME', '<M8[s]'), ('STATUS', 'i1'), ('MOBILE', 'i1')])])
最后一个结果是一个dtype
RMATCH
包含两个元素的数组ppre
和ppost
分别被转换成这个数据类型如果希望数组包含单个元素,
ppre
填充RMATCH
数据类型的第一个字段,ppost
填充第二个字段,请尝试以下操作:(请注意附加的括号。)
我不确定这是一个bug、一个疣还是一个
np.array([ppre, ppost], dtype=RMATCH)
没有引起错误的特性,而是用0填充了未使用的字段相关问题 更多 >
编程相关推荐