【问题标题】:Insert several nan values after every element of an array in python在python中数组的每个元素之后插入几个nan值
【发布时间】:2020-08-23 01:08:37
【问题描述】:

我正在尝试做一些非常简单的事情,但我被卡住了。一些帮助会非常好。 我有这个:

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

然后尝试再次执行此操作,我遇到了一个绑定错误。 有什么建议吗?

非常感谢

【问题讨论】:

    标签: python arrays numpy insert nan


    【解决方案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])
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-11
        • 2016-08-05
        • 2020-06-06
        • 2020-07-09
        • 2016-06-20
        • 2021-06-27
        • 1970-01-01
        • 2012-09-21
        相关资源
        最近更新 更多