我有一个带有风向记录的长numpy数组,我在运行算法检测数据中的跳转之前尝试使用numpy的unwrap
。数据包含NaN,numpy似乎无法处理这个。一旦遇到一个NaN,unwrap
返回的所有后续数据点也会转换为NaN。有办法解决这个问题吗?
我认为我的问题归结为与发布here相同的问题,但是它只是得出结论,错误与数据中的NaN有关,并且没有提供解决方案。
答案 0 :(得分:5)
假设您想保留NaN,最简单的解决方案是在将数组传递给---------------------------------------------
| a | aClass | b | bClass | isCommonClass |
=============================================
| :s | :D | :s | :D | true |
| :s | :D | :t | :E | false |
| :t | :E | :s | :D | false |
| :t | :E | :t | :E | true |
---------------------------------------------
之前屏蔽NaN,然后使用相同的掩码将结果写回:
unwrap
如果您想保留原始数组,请使用a[~np.isnan(a)] = np.unwrap(a[~np.isnan(a)])
:
np.copy