如何通过使用插值增加其大小来拉伸该向量?

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 中的布局方式以及您想要的结果。