在python中,在数组的每个元素后面插入几个nan值



我试图做一些非常简单的事情,但我被卡住了。有人帮忙会很好的。我有这个:

x=([0.,1.,2.,3.,4.])

我想获得这个:

x1=([0.,nan,nan,nan,nan,nan,1.,nan,,nan,nan,nan,nan,2.,nan,nan,nan,nan,nan,3.,nan,nan,nan,nan,nan,4.,nan,nan,nan,nan,nan])

此数组的每个元素后面都有5个nan值。到目前为止我的尝试:

x = np.arange(0,5, dtype=float)
x1= np.insert(x,[i+1 for i in x], np.nan)

但我只能获得这个:

array([ 0., nan,  1., nan,  2., nan,  3., nan,  4., nan])

当我再次尝试时,我犯了一个必然的错误。有什么建议吗?

非常感谢

我将创建一个完整的nan数组,并插入带有slice:的x

y = np.full(len(x)*6, np.nan)
y[::6] = x

输出(y(:

array([ 0., nan, nan, nan, nan, nan,  1., nan, nan, nan, nan, nan,  2.,
nan, nan, nan, nan, nan,  3., nan, nan, nan, nan, nan,  4., nan,
nan, nan, nan, nan])

您可以使用中缀+sum(起始值为[](添加列表。这意味着你可以这样做:

y = sum([[a] + [nan] * 5 for a in x],[])

最新更新