问题描述
a = [0,1,…,i-1,i,i+1,j,j+1,n]
我想用一个元素替换第 i 个、第 i+1 个……第 j 个元素——它们的平均值:
b = [0,average,n]
我将如何使用尽可能紧凑的代码来做到这一点?
解决方法
切片和连接数组
np.concatenate([a[:i],a[i:j].mean().reshape(1,),a[j:]])
示例
a = np.array(list(range(20)))
i = 5
j = 10
np.concatenate([a[:i],a[j:]])
array([ 0.,1.,2.,3.,4.,7.,10.,11.,12.,13.,14.,15.,16.,17.,18.,19.])