利用Numpy插值来线性缩放一维数据。如下:
import numpy as np
a = np.array([1,2,3,4,5,10,9,8,7,6])
a = np.interp(np.arange(0, len(a), 0.5), np.arange(0, len(a)), a) # 压缩0.5倍(放大2倍)
print(a)
输出为:[ 1. 1.5 2. 2.5 3. 3.5 4. 4.5 5. 7.5 10. 9.5 9. 8.5 8. 7.5 7. 6.5 6. 6. ]
a2 = np.interp(np.arange(0, len(a), 2), np.arange(0, len(a)), a) # 压缩2倍(放大0.5倍)
print(a2)
输出为:[1. 3. 5. 9. 7.]
问题:在压缩时,不能保证峰值、两端的值保持一致。
参考:重新采样一个 numpy 数组 Resample a numpy array (icopy.site)