在 Python、NumPy 和 R 中创建相同的随机数序列

2024-03-02

Python、NumPy 和 R 都使用相同的算法(Mersenne Twister)来生成随机数序列。因此,从理论上讲,设置相同的种子应该会在所有 3 个中产生相同的随机数序列。但事实并非如此。我认为这 3 个实现使用不同的参数导致了这种行为。



R
>set.seed(1)
>runif(5)
[1] 0.2655087 0.3721239 0.5728534 0.9082078 0.2016819
  


Python
In [3]: random.seed(1)

In [4]: [random.random() for x in range(5)]
Out[4]: 
[0.13436424411240122,
 0.8474337369372327,
 0.763774618976614,
 0.2550690257394217,
 0.49543508709194095]

  

NumPy
In [23]: import numpy as np

In [24]: np.random.seed(1)
In [25]: np.random.rand(5)
Out[25]: 
array([  4.17022005e-01,   7.20324493e-01,   1.14374817e-04,
         3.02332573e-01,   1.46755891e-01])
  

有什么方法可以让 NumPy 和 Python 实现产生相同的随机数序列吗?当然,正如一些评论和答案指出的那样,可以使用 rpy。我特别寻找的是微调 Python 和 NumPy 中各自调用中的参数以获得序列。

背景:这种担忧来自使用 R 的 EDX 课程。在其中一个论坛中,有人询问是否可以使用Python,工作人员回答说,有些作业需要设置特定的种子并提交答案。

有关的:

  1. 比较使用随机数生成的 Matlab 和 Numpy 代码 https://stackoverflow.com/questions/18486241/comparing-matlab-and-numpy-code-that-uses-random-number-generation?rq=1由此看来,NumPy 和 Matlab 的底层实现是相似的。
  2. python 与八度随机发生器 https://stackoverflow.com/questions/13735096/python-vs-octave-random-generator?rq=1: 这个问题确实非常接近预期的答案。需要对默认状态生成器进行某种包装。

我意识到这是一个老问题,但我最近偶然发现了同样的问题,并创建了一个对其他人有用的解决方案。

我用 C 语言编写了一个随机数生成器,并将其链接到 R 和 Python。这样,两种语言中的随机数就保证是相同的,因为它们是使用相同的 C 代码生成的。

该程序称为 SyncRNG,可以在此处找到:https://github.com/GjjvdBurg/SyncRNG https://github.com/GjjvdBurg/SyncRNG.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python、NumPy 和 R 中创建相同的随机数序列 的相关文章

  • Quantmod 的简单功能不再起作用

    我明天要交论文 我收到了一条关于 quantmod 的非常奇怪的错误消息 这是我在过去几周使用这个包时从未遇到过的 我无法导入特定于道琼斯指数 DJI 的数据 我收到以下错误消息 getSymbols DJI src yahoo from
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 使用Python请求登录Google帐户

    在多个登录页面上 需要谷歌登录才能继续 我想用requestspython 中的库以便让我自己登录 通常这很容易使用requests库 但是我无法让它工作 我不确定这是否是由于 Google 做出的一些限制 也许我需要使用他们的 API 或
  • purrr::可能函数可能无法与map2_chr函数一起使用

    我怀疑这是 purrr 包中的错误 但想先在 StackOverflow 中检查我的逻辑 在我看来 possibly功能在内部不起作用map2 chr功能 我正在使用 purrr 版本 0 2 5 考虑这个例子 library dplyr
  • 在Python中连接反斜杠

    我是 python 新手 所以如果这听起来很简单 请原谅我 我想加入一些变量来生成一条路径 像这样 AAAABBBBCCCC 2 2014 04 2014 04 01 csv Id TypeOfMachine year month year
  • datetime.datetime.now() 返回旧值

    我正在通过匹配日期查找 python 中的数据存储条目 我想要的是每天选择 今天 的条目 但由于某种原因 当我将代码上传到 gae 服务器时 它只能工作一天 第二天它仍然返回相同的值 例如当我上传代码并在 07 01 2014 执行它时 它
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • 每个术语出现的次数

    我得到了一个数组a n 2 where n can be 10 5最大时有n个科目和n个学生 全部编号为 1 2 n a i 0 and a i 1 1 lt i lt n 表示在第 i 个科目中 所有来自a i 0 to a i 1 通过
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • Excel:#CALC!使用 MAP 函数计算间隔重叠时出现错误(嵌套数组)

    我正在努力解决以下公式 它适用于某些情况 但不适用于所有情况 名字input有失败的数据集 得到一个 CALC 描述 嵌套数组 错误 LET input N1 0 0 N1 0 10 N1 10 20 names INDEX input 1
  • pyspark 将 twitter json 流式传输到 DF

    我正在从事集成工作spark streaming with twitter using pythonAPI 我看到的大多数示例或代码片段和博客是他们从Twitter JSON文件进行最终处理 但根据我的用例 我需要所有字段twitter J
  • javascript 是否有等效的 __repr__ ?

    我最接近Python的东西repr这是 function User name password this name name this password password User prototype toString function r
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • Pandas 将多行列数据帧转换为单行多列数据帧

    我的数据框如下 code df Car measurements Before After amb temp 30 268212 26 627491 engine temp 41 812730 39 254255 engine eff 15
  • 如何在 Shiny 中提取动态生成的输入值?

    我正在创建一个闪亮的应用程序 它将根据客户的不同功能为客户生成分数 在我闪亮的应用程序中 我提供了 checkboxGroupInput 来选择所需的功能 根据所选功能 应用程序将动态地将 numericInput 添加到 Web ui 以
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street
  • 绘制 Cox 回归的 Kaplan-Meier 图

    我使用 R 中的以下代码设置了一个 Cox 比例风险模型来预测死亡率 添加协变量 A B 和 C 只是为了避免混淆 即年龄 性别 种族 但我们真正对预测变量 X 感兴趣 X 是一个连续变量 cox model lt coxph Surv t
  • Kivy - 单击按钮时编辑标签

    我希望 Button1 在单击时编辑标签 etykietka 但我不知道如何操作 你有什么想法吗 class Zastepstwa App def build self lista WebOps getList layout BoxLayo

随机推荐

  • 我应该在哪里配置 max_result_window 索引设置?

    我正在尝试添加到我的elasticsearch yml index max result window 10000 但问题是它不喜欢我添加index 在配置中 它会导致错误 这在elastica版本2 X中工作 但现在在6 X中似乎不起作用
  • 如何使用反引号捕获 time(1) 的经过时间输出?

    我正在尝试获取输出time http www kernel org doc man pages online pages man1 time 1 html使用以下命令 我唯一想要的就是得到经过的时间 但我什么也没得到 result usr
  • WiX:多个 MSI 文件?

    Visual Studio 的解决方案中是否可以有一个 WiX Installer 项目 但该项目输出多个安装程序文件 通过具有多个 wxs 文件或多个
  • 如何在C++中实现向量混合?

    struct vec2 union struct float x y struct float r g struct float s t vec2 vec2 float a float b x a y b struct vec3 union
  • sql Management Studio 超过 7 列的 t-sql 唯一约束

    我想在表中为 7 列创建唯一约束 因此当有人想要在此表中插入数据时 这些列在一起是唯一的 在oracle中这很简单 但是在这里 我可以通过sql代码来做到这一点 CREATE TABLE Example Col1 int NOT NULL
  • ImageMagick 不再在 AWS Lambda 中转换 pdf

    过去 18 个月里 我在 S3 对象上运行了一个 AWS Lambda 函数 大约一个月前 它在一次小更新后失效了 我已恢复它 但它仍然损坏 我研究过使用 ImageMagick 进行最基本的 pdf 转换 但没有成功 所以我认为 AWS
  • JaCoCo 在跳过 JaCoCo 执行后才生成 jacoco.exec

    我在我的模块之一中通过 JaCoCo 生成 AHP 报告时遇到问题 当构建开始时 我看到 JaCoCo 正确设置 argLine 为 INFO jacoco agent argLine set to javaagent lt gt m2 r
  • Sidekiq 中是否有控制台命令可以查看队列中的内容并清除队列?

    我习惯使用delayed jobs方法进入控制台来查看队列中的内容 以及在需要时轻松清除队列的方法 Sidekiq 中有类似的命令吗 谢谢 有一个符合人体工学的用于查看和管理队列的 API https github com mperham
  • 如果所有子节点都分配了类,则选择父节点

    我正在寻找一种有效的方法来遍历无序列表 该列表包含多个级别 其中包含类 selected 如果组中的所有 UL LI 都具有 selected 类 我需要将 selected 类添加到子 UL 的父 LI 中 ul li one lt th
  • 从 C++ 使用 Neo4j 数据库

    我的问题是我想从 C 程序使用 Neo4j 数据库 我读了很多 但仍然不知道如何开始 首先 我想在 Neo4j 和 C 之间建立连接 并且我想从 C 程序创建节点 任何人都有示例代码 或者有人可以帮忙 我该如何开始 对于即将推出的二进制远程
  • Rserve - 一台服务器上有多个实例?

    是否可以在一台服务器上同时运行 Rserve 的多个实例 例如 10 个实例意味着 10 个独立的 R 工作区通过同一台计算机上的 Rserve 监听不同端口 在 Oleksandr指定的同一文档中 它在第5 6页明确指出 在Windows
  • 透视变换三角点

    我试图找到从一个三角形到另一个三角形的等效点 理想情况下 我希望能够给出三角形 A 的 3 个点和三角形 B 的 3 个点 然后计算变换矩阵 然后将其应用于该点以找到等效点 我为此找到了一些 JavaScript 库 方法 但它们都使用四边
  • 使用 JavaScript 的 Chrome 和 Safari XSLT

    我有以下应用 XSLT 样式的代码 Test Xml xslTransform function xml xsl try code for IE if window ActiveXObject ex xml transformNode xs
  • 看不到 Safari 开发者 Timeline 的 Memory Instrument

    我正在尝试分析 Safari 浏览器中的 Web 应用程序内存使用情况 我在几个网站上看到 Safari 的 Web Inspector Timeline 可用于分析 Web 应用程序内存 但我没有看到 内存 选项 这是我所看到的 以下网站
  • 在 rich:dataTable 中使用 a4j:repeat 或 ui:repeat 无法正确呈现单选按钮

    使用时
  • 使复合小部件可拖动时出现问题

    我对 gwt n dnd 相对较新 我创建了一个复合小部件 当我尝试使复合小部件的对象可拖动时 它会抛出异常 dragHandle 必须实现 HasMouseDownHandlers HasMouseUpHandlers HasMouseM
  • Expression.ToString() 有效吗?

    我有一个生成的 lambda 但是当我想观看它时 它就像一个普通的 lambda 它只是不显示任何内容 当我打电话时expr Body ToString 我得到以下信息 var compareA 但表达式的 DebugView 工作正常 L
  • 如何使用两个不同的节点版本运行两个不同的nodejs应用程序[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们有两个 Node js 应用程序 这两个应用程序不能在同一节点版本中运行 一个应用程序只能在node4 8 3中运行 另一个应用程
  • MapFragment 样式为 Dialog 导致 TextView 透明

    这是设置 我正在构建和显示样式为居中对话框的活动 这是为了显示不应在设备上全屏显示的分层内容 一种类型的内容是地图 所以我已经成功地将 MapFragment 加载到对话框样式的 FragmentActivity 中 这确实有效 问题是当我
  • 在 Python、NumPy 和 R 中创建相同的随机数序列

    Python NumPy 和 R 都使用相同的算法 Mersenne Twister 来生成随机数序列 因此 从理论上讲 设置相同的种子应该会在所有 3 个中产生相同的随机数序列 但事实并非如此 我认为这 3 个实现使用不同的参数导致了这种