将dd、mm、yy数组转换为numpy datetime

2024-09-27 02:24:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将YY、MM、DD值的单独数组转换为numpy datetime64数组。这是密码

import numpy as np

iyy = [2020, 2020, 2019, 2018, 2017]
imm = [2, 4, 4, 6, 8]
idd = [1, 2, 3, 4, 5]

isod = []
for y, m, d in zip(iyy, imm, idd):
    isod.append("%4d-%02d-%02d" % (y, m, d))

t1 = np.datetime64(np.asarray(isod))

这会产生错误Could not convert object to NumPy datetime。如有任何建议,我们将不胜感激。提前谢谢


Tags: importnumpy密码forasnp数组dd
2条回答

您可以在列表理解中转换为numpy.datetime64,然后从该列表创建一个numpy.array

>>> np.array([np.datetime64('{:04d}-{:02d}-{:02d}'.format(y, m, d)) for y, m, d in zip(iyy, imm, idd)])
array(['2020-02-01', '2020-04-02', '2019-04-03', '2018-06-04', '2017-08-05'],
      dtype='datetime64[D]')

改变

np.datetime64(np.asarray(isod))

np.asarray(isod).astype(np.datetime64)

完整代码:

Try it online!

import numpy as np

iyy = [2020, 2020, 2019, 2018, 2017]
imm = [2, 4, 4, 6, 8]
idd = [1, 2, 3, 4, 5]

isod = []
for y, m, d in zip(iyy, imm, idd):
    isod.append("%4d-%02d-%02d" % (y, m, d))

t1 = np.asarray(isod).astype(np.datetime64)
print(t1)

输出:

['2020-02-01' '2020-04-02' '2019-04-03' '2018-06-04' '2017-08-05']

相关问题 更多 >

    热门问题