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

问题描述 投票:1回答:1

我想做一些非常简单的事情,但我被卡住了。一些帮助将是非常好的。 我有这个。

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个纳米值 我的尝试到目前为止:

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])

我试图再做一次,我得到了一个绑定错误。 任何建议?

谢谢你了

python arrays numpy insert nan
1个回答
-1
投票

你可以使用信息集来添加列表 +sum (起始值为 []).这意味着你可以这样做。

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

1
投票

我将创建一个完整的 nan 数组,并插入 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])
© www.soinside.com 2019 - 2024. All rights reserved.