首页 > 解决方案 > 如何在numpy向量中的每个元素之间应用linspace?

问题描述

我有以下 numpy 数组:

a = np.array([1,4,2])

我希望通过在数组中的每个元素之间将其除以 5 来创建一个新数组,a以获得:

b = [1., 1.75, 2.5, 3.25, 4., 3.5, 3., 2.5, 2.]

我怎样才能在python中有效地做到这一点?

标签: pythonnumpy

解决方案


您正在寻找一维数组的线性插值,可以使用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.  ])

推荐阅读