Python numpy.unwrap()
numpy.unwrap(p, discount=3.141592653589793, axis=-1)函数帮助用户通过改变deltas到2*pi的补码值来解包一个给定的数组。它通过将大于discount的绝对跳变为沿给定轴的2*pi补码来解包弧度相位p。结果是一个解包的数组。
参数:
p :[类似数组]输入数组
discount:[float, optional]数值之间的最大不连续度,默认为pi
axis :[int, optional] 将对其进行解包的轴,默认为最后一个轴
返回: [ndarray] 输出阵列
注意:如果p的不连续性小于pi,但大于discount,则不做解包,因为取2*pi的补码只会使不连续性变大。
代码#1:默认值工作
import numpy as np
l1 =[1, 2, 3, 4, 5]
print("Result 1: ", np.unwrap(l1))
l2 =[0, 0.78, 5.49, 6.28]
print("Result 2: ", np.unwrap(l2))
输出:
Result 1: array([1., 2., 3., 4., 5.])
Result 2: array([ 0., 0.78, -0.79318531, -0.00318531])
在l2中,折扣>2*pi(在0.78和5.49之间),所以数组值被改变。
代码#2:自定义值工作。
import numpy as np
l1 =[5, 7, 10, 14, 19, 25, 32]
print("Result 1: ", np.unwrap(l1, discount = 4))
l2 =[0, 1.34237486723, 4.3453455, 8.134654756, 9.3465456542]
print("Result 2: ", np.unwrap(l2, discount = 3.1))
输出:
Result 1: [ 5., 7., 10., 7.71681469, 6.43362939, 6.15044408, 6.86725877]
Result 2: [0., 1.34237487, 4.3453455, 1.85146945, 3.06336035]