Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python numpy从线性函数生成数据_Python_Python 3.x_Numpy_Machine Learning - Fatal编程技术网

Python numpy从线性函数生成数据

Python numpy从线性函数生成数据,python,python-3.x,numpy,machine-learning,Python,Python 3.x,Numpy,Machine Learning,假设我想从一个线性函数中生成100个左右的数据点,最好的方法是什么 示例线性函数y=0.4*x+3+delta 其中delta是从-10和+10之间的均匀分布中提取的随机值 我希望为每个数据点生成delta,以便对数据进行一些扰动 import numpy as np d = np.random.uniform(-10, 10) 这似乎符合delta的要求,尽管我不确定如何生成包含此项的其余部分。我不知道您希望如何生成x,但这将起作用: In [7]: x = np.arange(100)

假设我想从一个线性函数中生成100个左右的数据点,最好的方法是什么

示例线性函数
y=0.4*x+3+delta

其中delta是从-10和+10之间的均匀分布中提取的随机值

我希望为每个数据点生成delta,以便对数据进行一些扰动

import numpy as np

d = np.random.uniform(-10, 10)

这似乎符合delta的要求,尽管我不确定如何生成包含此项的其余部分。

我不知道您希望如何生成x,但这将起作用:

In [7]: x = np.arange(100)

In [8]: delta = np.random.uniform(-10,10, size=(100,))

In [9]: y = .4 * x +3 + delta

这完全取决于要评估函数的
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

plt.plot(x,y)
然后
plt.show()
。是的,对不起,我说得太快了,结果很直截了当。为了清楚起见,我使用了plt.plot(y,'x')来获取数据点。没有第一个x变量的plt.plot(y,'x')会导致为x轴推断np.arange(0,len(y))。如果您使用任何其他范围(例如-50到50)计算y,则图形将不正确。谢谢,我感谢您的警告。我已经和医生确认了这一点。