gpt4 book ai didi

python - 将 Matplotlib 日期数组转换为 NaN 的 Datetime 对象

转载 作者:行者123 更新时间:2023-12-01 00:49:10 25 4
gpt4 key购买 nike

我有数千个包含不规则数据的文件,我试图将它们插入到同一网格中。数据存储在多个不同变量和时间的单独 numpy 数组中。我一直在使用 matplotlib.dates 通过将时间转换为数字来插值时间。但因为我不想推断丢失的数据,插值在数据集中引入了 np.nan 值,使得从 matplotlib 日期转换为 datetime 对象很棘手,因为我需要保存形状(即无法删除 np.nans),但 md.num2date 无法处理屏蔽数组或 np.nan.

另一个库中是否有另一个命令,例如 md.date2nummd.num2date 可以解释 nan ?或者这里唯一的解决方案是 for 循环?

import numpy as np
import matplotlib.dates as md

tdata = np.array([np.nan, np.nan, 736926.9827155,736926.98274578,736926.98276768,736926.98285067,736926.9828712])

#Allows num2date to work but removes the nan values and won't conserve shape
test1 = md.num2date(tdata[~np.isnan(tdata)])

print(len(tdata),len(test1))

#Using a mask will produce an error
#test2 = md.num2date(np.ma.masked_array(tdata,np.isnan(tdata)))

请注意,我需要形状相同,并且 np.nan 可以出现在数组中的任何位置。我正在使用 python 2.7

最佳答案

也许是这样的?

test1 = np.full_like(tdata, np.nan, dtype=object)
test1[~np.isnan(tdata)] = md.num2date(tdata[~np.isnan(tdata)])

关于python - 将 Matplotlib 日期数组转换为 NaN 的 Datetime 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56710151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com