【问题标题】:Numpy Upsample np.array / increase size of np.array by adding mean value of cosecuitive elementsNumpy Upsample np.array / 通过添加共同元素的平均值来增加 np.array 的大小
【发布时间】:2021-11-17 17:29:27
【问题描述】:

我有一个 np.array,我需要将其大小设为两倍/三倍/四倍。我想通过在每 2 个连续元素之间添加 1/2/3 个元素来做到这一点。 例如:

np.array([1,2,3,4,5])

成为

np.array([1,1.5,2,2.5,3,3.5,4,4.5,5,5.5])

使用 python 做到这一点没有问题。但我需要最快的方法,最好使用 Numpy/Scipy。

【问题讨论】:

    标签: python numpy scipy


    【解决方案1】:

    np.interp:

    a = np.array([1,2,3,4,5])
    ur = 2  # upsample rate
    np.interp(np.arange((len(a)-1)*ur+1)/ur, xp=np.arange(len(a)), fp=a)
    # output: array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5.])
    

    【讨论】:

      【解决方案2】:

      可能比 Marat 的效率低,但它确实有效:

      import numpy as np
      
      my_list = [1,2,3,4,5]
      new_list = np.concatenate([np.linspace(i, i+1, 3) for i in range(len(my_list))[1:]])
      print(list(dict.fromkeys(new_list)))
      

      输出:

      [1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0]
      

      对于numpy arrays,它是等价的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-07
        • 2015-09-15
        • 2014-12-25
        相关资源
        最近更新 更多