栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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感知能力外,它还具有提供大量概率分布可供选择的优势。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/646135.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号