如何为预定义函数生成随机值?
How to generate random values for a predefined function?
我有一个预定义函数,例如:
my_func = lambda x: (9 * math.exp((-0.5 * y) / 60))/1000
我如何根据它生成随机值,以便我可以使用 matplotlib
绘制函数的结果?
如果要绘图,请不要使用随机 x 值,而是使用范围。
您还应该使用 numpy.exp
可以将向量作为输入,并且 lambda 中的 y
应该是 x
(y
未定义)。
这给了我们:
import numpy as np
import matplotlib.pyplot as plt
my_func = lambda x: (9 * np.exp((-0.5 * x) / 60))/1000
xs = np.arange(-1000,10)
plt.plot(xs, my_func(xs))
输出:
取决于您要做什么,但是 random
模块是您要搜索的地方。例如,用 0 到 1 之间的 100 个值对其进行测试:
import random
my_func = lambda y: (9 * math.exp((-0.5 * y) / 60))/1000
values = [my_func(random.random()) for _ in range(100)]
或者 1000 个介于 50 和 250 之间的整数:
import random
my_func = lambda y: (9 * math.exp((-0.5 * y) / 60))/1000
values = [my_func(random.randint(50, 250)) for _ in range(1000)]
模块的文档可能有帮助:here
对于大型数据集,numpy
也可以实现同样的效果,但同样,这取决于您在这里的确切需求
P.S 我更正了你的 lambda
实际使用 y
值而不是 x
,我认为这只是一个错字
我有一个预定义函数,例如:
my_func = lambda x: (9 * math.exp((-0.5 * y) / 60))/1000
我如何根据它生成随机值,以便我可以使用 matplotlib
绘制函数的结果?
如果要绘图,请不要使用随机 x 值,而是使用范围。
您还应该使用 numpy.exp
可以将向量作为输入,并且 lambda 中的 y
应该是 x
(y
未定义)。
这给了我们:
import numpy as np
import matplotlib.pyplot as plt
my_func = lambda x: (9 * np.exp((-0.5 * x) / 60))/1000
xs = np.arange(-1000,10)
plt.plot(xs, my_func(xs))
输出:
取决于您要做什么,但是 random
模块是您要搜索的地方。例如,用 0 到 1 之间的 100 个值对其进行测试:
import random
my_func = lambda y: (9 * math.exp((-0.5 * y) / 60))/1000
values = [my_func(random.random()) for _ in range(100)]
或者 1000 个介于 50 和 250 之间的整数:
import random
my_func = lambda y: (9 * math.exp((-0.5 * y) / 60))/1000
values = [my_func(random.randint(50, 250)) for _ in range(1000)]
模块的文档可能有帮助:here
对于大型数据集,numpy
也可以实现同样的效果,但同样,这取决于您在这里的确切需求
P.S 我更正了你的 lambda
实际使用 y
值而不是 x
,我认为这只是一个错字