忽略NaN的Numpy包装

Pet*_*192 3 python numpy unwrap

我有一个长的numpy数组,带有风向记录,unwrap在运行算法来检测数据中的跳跃之前,我试图使用numpy的数组。数据包含NaN,而numpy似乎无法处理此问题。一旦遇到一个NaN,所有随后返回的数据点unwrap也将转换为NaN。有没有解决的办法?

我认为我的问题可以归结为与此处发布的问题相同,但是只能得出结论,该错误与数据中的NaN有关,并且没有提供解决方案。

eca*_*mur 5

假设您要保留NaN,最简单的解决方案是在将数组传递给NaN之前屏蔽掉NaN,unwrap并使用相同的掩码将结果写回:

a[~np.isnan(a)] = np.unwrap(a[~np.isnan(a)])
Run Code Online (Sandbox Code Playgroud)

如果要保留原始数组,请使用np.copy

b = np.copy(a)
b[~np.isnan(b)] = np.unwrap(b[~np.isnan(b)])
Run Code Online (Sandbox Code Playgroud)