1

我正在尝试使用该功能numpy.unwrap来纠正某些阶段

我有 2678399 条记录的长向量,其中包含 2 个角度之间的弧度差异。该数组包含 nan 值,尽管我认为不相关,因为 unwrap 是独立应用于每个记录的。

当我应用 unwrap 时,由 400 记录在数组的其余部分生成 nan 值

如果我将 np.unwrap 应用于原始数组的一个切片,则可以正常工作。

这是此功能中可能存在的错误吗?

d90dif=(df2['d90']-df2['d90avg'])*(np.pi/180)#difference between two angles in radians
df2['d90dif']=np.unwrap(d90dif.values)#unwrap to the array to create new column

只是为了解释问题

d90dif[700:705]#angle difference for some records
2013-01-01 00:11:41    0.087808
2013-01-01 00:11:42    0.052901
2013-01-01 00:11:43    0.000541
2013-01-01 00:11:44    0.087808
2013-01-01 00:11:45    0.017995
dtype: float64

df2['d90dif'][700:705]#results with unwrap for these records
2013-01-01 00:11:41   NaN
2013-01-01 00:11:42   NaN
2013-01-01 00:11:43   NaN
2013-01-01 00:11:44   NaN
2013-01-01 00:11:45   NaN
Name: d90dif, dtype: float64

现在我用一个小数组重复这个过程

test=d90dif[700:705]
2013-01-01 00:11:41    0.087808
2013-01-01 00:11:42    0.052901
2013-01-01 00:11:43    0.000541
2013-01-01 00:11:44    0.087808
2013-01-01 00:11:45    0.017995
dtype: float64

unw=np.unwrap(test.values)
array([ 0.08780774,  0.05290116,  0.00054128,  0.08780774,  0.01799457])

现在好了。如果我用 unwrap() 中的数据框输入来做,也可以正常工作

4

2 回答 2

1

通过查看unwrap 的文档,似乎 NaN 会产生影响,因为该函数正在查看相邻元素的差异以检测相位中的跳跃。

于 2016-04-27T18:41:05.220 回答
0

似乎nan值起着重要作用

test

2013-01-01 00:11:41    0.087808
2013-01-01 00:11:42    0.052901
2013-01-01 00:11:43    0.000541
2013-01-01 00:11:44         NaN
2013-01-01 00:11:45    0.017995
dtype: float64

如果列中有 nan,则从那里一切都变成 nan

np.unwrap(test)

array([ 0.08780774,  0.05290116,  0.00054128,         nan,         nan])

我会说这是一个错误,但是......

于 2016-04-27T16:46:19.087 回答