使用插值的新值加倍python numpy数组的长度

use*_*255 8 python arrays numpy scipy

我有一个5个数字的数组:

A = [10, 20, 40, 80, 110]
Run Code Online (Sandbox Code Playgroud)

我需要创建一个长度为10的新数组.

额外的数字可以是两个#之间的平均数A.

例如:编辑B = [10,15,20,30,40,60,80,95,110]

是否可以使用scipy或numpy功能?

unu*_*tbu 9

使用numpy.interp:

import numpy as np
Y = [10, 20, 40, 80, 110]
N = len(Y)
X = np.arange(0, 2*N, 2)
X_new = np.arange(2*N-1)       # Where you want to interpolate
Y_new = np.interp(X_new, X, Y) 
print(Y_new)
Run Code Online (Sandbox Code Playgroud)

产量

[  10.   15.   20.   30.   40.   60.   80.   95.  110.]
Run Code Online (Sandbox Code Playgroud)


Lev*_*sky 5

使用这个答案:

In [1]: import numpy as np

In [2]: a = np.array([10, 20, 40, 80, 110])

In [3]: b = a[:-1] + np.diff(a)/2

In [4]: c = np.empty(2 * a.size -1)

In [5]: c[::2] = a

In [6]: c[1::2] = b

In [7]: c
Out[7]: array([  10.,   15.,   20.,   30.,   40.,   60.,   80.,   95.,  110.])
Run Code Online (Sandbox Code Playgroud)