代码之家  ›  专栏  ›  技术社区  ›  SDG

创建向特定点递增的随机数据

  •  2
  • SDG  · 技术社区  · 6 年前

    我试图在两个数据点之间创建随机数据。我想要一个向某个特定点发展的趋势。我在下面的图表中粗略地画出了我想要的:

    enter image description here

    我尝试了一些解决方案,包括截断正态分布,但似乎不能实现这一点。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Mad Physicist    6 年前

    您可以将白噪声添加到数据中。它可以更好地与所示的其他方法结合使用,但也可以单独使用,如果您不需要在噪音中有很多结构:

    x = np.linspace(0, x_max, n_points)
    y = np.linspace(0, y_max, n_points) + np.random.normal(size=n_points)
    

    如果要固定端点,必须将其保持不变:

    y = np.linspace(0, y_max, n_points)
    y[1:-1] += np.random.normal(size=n_points - 2)
    
        2
  •  2
  •   user1118321    6 年前

    另一种方法是创建一个以所需位置开始和结束的线段。然后取其中点,随机上下移动。现在取两个新创建的线段的中点,随机上下移动它们。递归地重复这个过程,直到达到所需的分辨率。

    这就是所谓的中点位移算法。