我正在尝试将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
。将不胜感激任何建议,以实现这一目标。预先感谢
答案 0 :(得分:0)
您可以按列表理解方式转换为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]')
答案 1 :(得分:0)
更改
np.datetime64(np.asarray(isod))
到
np.asarray(isod).astype(np.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.asarray(isod).astype(np.datetime64)
print(t1)
输出:
['2020-02-01' '2020-04-02' '2019-04-03' '2018-06-04' '2017-08-05']