Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建numpy数组时在末尾添加了零项_Python_Numpy - Fatal编程技术网

Python 创建numpy数组时在末尾添加了零项

Python 创建numpy数组时在末尾添加了零项,python,numpy,Python,Numpy,从下面的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_MOB

从下面的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')])])
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=[(列前,RDT),(列后,RDT)]
ipdb>ppre,ppost=np.array(pre,dtype=RDT),np.array(post,dtype=RDT)
ipdb>ppre
数组((datetime.datetime(2013,12,31,9,58),0,1),

dtype=[('TIME','您的最后一个结果是一个包含两个元素的dtype
RMATCH
数组。
ppre
ppost
分别转换为此dtype

如果您希望数组包含单个元素,且
ppre
填充
RMATCH
dtype的第一个字段,而
ppost
填充第二个字段,请尝试以下操作:

np.array([(ppre, ppost)], dtype=RMATCH)
(请注意额外的括号。)

我不确定这是一个bug、一个疣子还是一个
np的特性。array([ppre,ppost],dtype=RMATCH)
没有引发错误,而是用0填充了未使用的字段