假设我想从线性函数生成100个左右的数据点,那么最好的方法是什么?
示例线性函数y = 0.4*x + 3 + delta
其中delta是从-10和+10之间的均匀分布中抽取的随机值
我希望为每个数据点生成delta,以对数据进行一些扰动。
import numpy as np
d = np.random.uniform(-10, 10)
这似乎符合三角洲的法案,尽管我不确定如何生成包含此内容的其余内容。
答案 0 :(得分:7)
我不知道你想如何生成x,但这会起作用:
In [7]: x = np.arange(100)
In [8]: delta = np.random.uniform(-10,10, size=(100,))
In [9]: y = .4 * x +3 + delta
答案 1 :(得分:2)
这完全取决于您要评估函数的x
值。假设您想要从-50到50进行绘图,只需使用x = np.arange(-50,50)
,但您需要d = np.random.uniform(-10, 10, x.size)
。
然后运行你的功能:y = 0.4*x + 3 + delta
。
另一方面,如果你想要一个线性间隔x
,你也可以使用np.linspace
或对数间距为x
:np.logspace
。
最后看起来像:
x = np.linspace(0, 100, 1000) # 1000 values between 0 and 100
# x = np.arange(-50, 50) # -50, -49, ... 49, 50
delta = np.random.uniform(-10, 10, x.size)
y = 0.4*x + 3 + delta