Python中numpy.random和random.random之间的性能差异

Python中numpy.random和random.random之间的性能差异,第1张

Python中numpy.random和random.random之间的性能差异

numpy.random
和python的
random
工作方式不同,尽管正如您所说,它们使用相同的算法。

就种子而言
:可以使用from中的

set_state
and
get_state
函数
numpy.random
(在python中
random
称为
getstate
setstate
),并将状态从一个传递到另一个。结构略有不同(在python中,
pos
整数附加到状态元组中的最后一个元素)。请参阅numpy.random.get_state()和random.getstate()的文档

import randomimport numpy as nprandom.seed(10)s1 = list(np.random.get_state())s2 = list(random.getstate())s1[1] = np.array(s2[1][:-1]).astype('int32')s1[2] = s2[1][-1]np.random.set_state(tuple(s1))print(np.random.random())print(random.random())>> 0.57140259468991350.5714025946899135

在效率方面 :这取决于您要执行的 *** 作,但是numpy通常更好,因为您可以创建元素数组而不需要循环:

%timeit np.random.random(10000)142 µs ± 391 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)%timeit [random.random() for i in range(10000)]1.48 ms ± 2.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

在“随机性”方面
,numpy(根据他们的文档)也更好:

注意:Python stdlib模块“ random”还包含Mersenne
Twister伪随机数生成器,其生成方法与中提供的方法类似

RandomState
RandomState
除了具有NumPy感知能力外,它还具有提供大量概率分布可供选择的优势。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5648336.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存