我有以下 numpy 数组:
a = np.array([1,4,2])
Run Code Online (Sandbox Code Playgroud)
我希望通过将数组中的每个元素除以 5 来创建一个新数组,a得到:
b = [1., 1.75, 2.5, 3.25, 4., 3.5, 3., 2.5, 2.]
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Python中有效地做到这一点?
您正在寻找一维数组的线性插值NumPy.interp,这可以使用 来完成。
s = 4 # number of intervals between two numbers
l = (a.size - 1) * s + 1 # total length after interpolation
np.interp(np.arange(l), np.arange(l, step=s), a) # interpolate
# array([1. , 1.75, 2.5 , 3.25, 4. , 3.5 , 3. , 2.5 , 2. ])
Run Code Online (Sandbox Code Playgroud)