我正在尝试在函数y = 2x周围创建一条散点的线。与正常函数(f(x))相比,这些点应该具有-0.5和0.5之间的随机偏差:
def f(x):
return 2 * x
def g(x):
return f(x) - np.random.uniform(-0.5, 0.5)
x = np.linspace(0, 5, 51)
y = f(x)
y2 = g(x)
# plot
plt.plot(t, y, 'b-')
plt.plot(t, y, 'ro')
plt.show()
当然,y2现在将是一条散乱的线,其中所有点具有相同的偏差,因为所有点的随机数都相同。现在我想知道我是如何做到的,所以每个点都会有一个随机偏差(所以我怎么能对每个点单独执行一个动作)。提前谢谢!
答案 0 :(得分:1)
是:将size=(51,)
(或更好,使用x
数组的形状)传递给np.random.uniform()
,从统一分布中抽取多个样本:
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return 2 * x
def g(x):
return f(x) - np.random.uniform(-0.5, 0.5, size=x.shape)
x = np.linspace(0, 5, 51)
y = f(x)
y2 = g(x)
# plot
plt.plot(x, y, 'b-')
plt.plot(x, y2, 'ro')
plt.show()