如何通过使用插值增加其大小来拉伸该向量?
How to stretch this vector by increasing its size using interpolation?
我有很多不同大小的向量,每个向量都有很多值。如何增加向量的大小?我应该使用插值吗?这是其中一个向量的示例:
a = np.array(data['col1'])
a
array([
....
....
1.58795599271e-18,
1.44291516626e-17,
9.38543028522e-18,
1.26688244651e-17,
2.92337581236e-18,
3.94537400278e-18,
3.5377910957e-18,
2.28690272401e-18
....
.... ])
数组大小为2244
如何将大小更改为 3153?
np.interp
执行一维线性插值:
import numpy as np
# suppose this is your given array
size = 2244
data = np.random.random(size)
xloc = np.arange(size)
newsize = 3153
new_xloc = np.linspace(0, size, newsize)
new_data = np.interp(new_xloc, xloc, data)
您可以使用 scipy.interpolate.interp1d
进行最近、二次、三次或更高阶样条插值。
如果您的 "many vectors" 在 Pandas DataFrame 中,您可能正在寻找 DataFrame.interpolate
,但是插值是相对于固定的 DataFrame 索引(起到作用new_xloc
以上)。它对您的用处可能取决于您的各种大小的向量在 DataFrame 中的布局方式以及您想要的结果。
我有很多不同大小的向量,每个向量都有很多值。如何增加向量的大小?我应该使用插值吗?这是其中一个向量的示例:
a = np.array(data['col1'])
a
array([
....
....
1.58795599271e-18,
1.44291516626e-17,
9.38543028522e-18,
1.26688244651e-17,
2.92337581236e-18,
3.94537400278e-18,
3.5377910957e-18,
2.28690272401e-18
....
.... ])
数组大小为2244
如何将大小更改为 3153?
np.interp
执行一维线性插值:
import numpy as np
# suppose this is your given array
size = 2244
data = np.random.random(size)
xloc = np.arange(size)
newsize = 3153
new_xloc = np.linspace(0, size, newsize)
new_data = np.interp(new_xloc, xloc, data)
您可以使用 scipy.interpolate.interp1d
进行最近、二次、三次或更高阶样条插值。
如果您的 "many vectors" 在 Pandas DataFrame 中,您可能正在寻找 DataFrame.interpolate
,但是插值是相对于固定的 DataFrame 索引(起到作用new_xloc
以上)。它对您的用处可能取决于您的各种大小的向量在 DataFrame 中的布局方式以及您想要的结果。