程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Numpy 随机数生成器和 lambda 函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Numpy 随机数生成器和 lambda 函数?

开发过程中遇到Numpy 随机数生成器和 lambda 函数的问题如何解决?下面主要结合日常开发的经验,给出你关于Numpy 随机数生成器和 lambda 函数的解决方法建议,希望对你解决Numpy 随机数生成器和 lambda 函数有所启发或帮助;

我正在尝试创建一个随机变量列表 wtfuns,我可以将其调用为:wtfuns[i](size=1000) 以返回特定随机变量的 1000 个样本的列表。为此,我使用 lambda 函数如下:

wtfuns = []
pvals = [0.3,0.5,0.7]
for p in pvals:
    wtfuns.append(('bernoulli p='+str(p),lambda **x: binom(p,**X)))

for i in range(3):
    print(wtfuns[i][1](size=1000).mean())

输出

0.686
0.684
0.706

也就是说,在 wtfuns[:,1] 列中,我有相同的二项式随机变量,参数为 0.7。然而,

for p in pvals:
    print(wtfuns[0][1](size=1000).mean())

生产

0.311
0.524
0.67

以某种方式将 p 值通过引用传递给 lambda 函数。到底是怎么回事?我完全糊涂了。

解决方法

是的,您的第一个定义捕获了对 p 的引用。随着 p 的变化,函数也会发生变化。解决方案是使用将 lambda 转换为闭包的技巧:

    wtfuns.append(('bernoulli p='+str(p),lambda p=p,**x: binom(p,**X)))

“p=p”事物将 p 的当前值捕获到一个局部变量中,该局部变量随函数一起携带。

大佬总结

以上是大佬教程为你收集整理的Numpy 随机数生成器和 lambda 函数全部内容,希望文章能够帮你解决Numpy 随机数生成器和 lambda 函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:lambda函数