我有很多不同大小的矢量,每个矢量都有很多值。如何增加向量的大小?我应该使用插值吗?以下是其中一个向量的示例:
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?
答案 0 :(得分:1)
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
进行最近,二次,三次或更高阶的样条插值。
如果您的“很多向量”位于Pandas DataFrame中,您可能正在寻找DataFrame.interpolate
,但是相对于固定的DataFrame索引(在上面扮演new_xloc
的角色进行插值) )。它对您的用处可能取决于您在DataFrame中如何布置各种大小的向量以及您想要的结果。