【发布时间】:2016-05-04 12:05:13
【问题描述】:
我有一个带有风向记录的长 numpy 数组,我正在尝试使用 numpy 的 unwrap 在运行算法来检测数据中的跳跃之前。数据包含 NaN,numpy 似乎无法处理它。一旦遇到一个 NaN,unwrap 返回的所有后续数据点也会转换为 NaN。有没有办法解决这个问题?
我认为我的问题归结为与 here 发布的相同问题,但仅得出结论认为该错误与数据中的 NaN 有关,并且没有提供解决方案。
【问题讨论】:
我有一个带有风向记录的长 numpy 数组,我正在尝试使用 numpy 的 unwrap 在运行算法来检测数据中的跳跃之前。数据包含 NaN,numpy 似乎无法处理它。一旦遇到一个 NaN,unwrap 返回的所有后续数据点也会转换为 NaN。有没有办法解决这个问题?
我认为我的问题归结为与 here 发布的相同问题,但仅得出结论认为该错误与数据中的 NaN 有关,并且没有提供解决方案。
【问题讨论】:
假设您想保留 NaN,最简单的解决方案是在将数组传递给 unwrap 之前屏蔽掉 NaN,并使用相同的掩码将结果写回:
a[~np.isnan(a)] = np.unwrap(a[~np.isnan(a)])
如果要保留原始数组,请使用np.copy:
b = np.copy(a)
b[~np.isnan(b)] = np.unwrap(b[~np.isnan(b)])
【讨论】: