Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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数组中存储datetime_Python_Python 3.x_Datetime_Numpy - Fatal编程技术网

Python 在numpy数组中存储datetime

Python 在numpy数组中存储datetime,python,python-3.x,datetime,numpy,Python,Python 3.x,Datetime,Numpy,假设我想在numpy数组中存储for循环100次迭代的datetime值,如下所示: import numpy as np import time from datetime import datetime Startmult = np.zeros((1,100)) for i in range(100): Startmult[i] = datetime.now() 无论何时执行此操作,都会出现以下错误: float() argument must be a string or

假设我想在numpy数组中存储for循环100次迭代的datetime值,如下所示:

import numpy as np
import time 
from datetime import datetime

Startmult = np.zeros((1,100))
for i in range(100): 
    Startmult[i] = datetime.now()
无论何时执行此操作,都会出现以下错误:

float() argument must be a string or a number, not 'datetime.datetime'
有没有办法克服这个错误

谢谢你的帮助

编辑:另外,现在我想做以下工作,但似乎找不到解决方案:

 CPUtime = np.zeros((100), dtype='datetime64[s]')
 for i in range(100): 
     Start = datetime.now() 
     CPUtime[i] = datetime.now()-Start
在中,现在获取以下错误:

Could not convert object to NumPy datetime

正如错误消息中指出的,我们需要在那里使用兼容的数据类型,
float
不行。其中一个兼容的是
datetime64
,我们还需要指定精度。假设我们需要
。然后,数组初始化部分将是-

Startmult = np.zeros((100), dtype='datetime64[s]')
将列出所有可用的时间单位

下面是一个运行
nano-sec
100
元素案例中运行的示例,并使用第一个和最后一个输出元素进行验证-

In [447]: Startmult = np.zeros((100), dtype='datetime64[ns]')
     ...: for i in range(100): 
     ...:     Startmult[i] = datetime.now()
     ...:     

In [448]: Startmult[0] # first element
Out[448]: numpy.datetime64('2017-08-31T22:39:45.722306000')

In [449]: Startmult[-1] # last element
Out[449]: numpy.datetime64('2017-08-31T22:39:45.723201000')

编辑:如果您试图将两个时间点之间经过的秒数存储为浮动pt数,您可以这样做-

CPUtime = np.zeros((100))
for i in range(100): 
    Start = datetime.now()
    time_diff = datetime.now()-Start
    CPUtime[i] = time_diff.total_seconds()

对于
u-sec
精度,请使用:
time\u diff.microseconds
您需要将当前日期时间转换为整数格式(仅秒)

非常感谢您的回答!我还有一个问题,你可以帮我解决(我编辑了我原来的帖子)。@tattybojangler请查看编辑部分。