gpt4 book ai didi

python - 在numpy中绘制相同的随机数

转载 作者:行者123 更新时间:2023-11-28 21:19:13 25 4
gpt4 key购买 nike

我得到了以下代码:

import numpy as np
rand_draw1 = np.random.rand(5,4)
rand_draw2 = rand_draw1
rand_draw2[0:2,0:4] = np.random.rand(2,4)

我的意图是让变量 rand_draw1 和 rand_draw2 除前两行外完全相同。然而,它们完全相同,甚至前两行也是如此。

最初我认为这个问题回答了我的问题: Random Number Generation - Same Number returned这表明这一定是由于这些随机抽取是基于机器时钟这一事实,并且由于命令是在几乎相同的实例中执行的,所以人们抽取了相同的数字。但如果是这样,为什么我在终端中运行它会得到相同的结果(即逐行输入)?

总而言之,我有两个问题:- 如何修复我的代码?- 是否确实是机器时间“问题”导致的?

提前致谢!

最佳答案

只是分配 rand_draw2 = rand_draw1不会创建副本,它只是将名称 rand_draw2 绑定(bind)到相同的对象 已经绑定(bind)到 rand_draw1:

>>> rand_draw2 = rand_draw1
>>> rand_draw2 is rand_draw1
True

相反,您需要显式复制 rand_draw1,并将copy分配给rand_draw2:

>>> rand_draw1 = np.random.rand(5, 4)
>>> rand_draw2 = rand_draw1.copy()
>>> rand_draw2[0:2] = np.random.rand(2, 4)
>>> rand_draw1
array([[ 0.08254004, 0.51848814, 0.69348487, 0.44053008],
[ 0.75273107, 0.64677024, 0.78397813, 0.12768647],
[ 0.37552669, 0.8365069 , 0.44490398, 0.3943413 ],
[ 0.27263619, 0.40379047, 0.43227555, 0.61552473],
[ 0.55214161, 0.21380748, 0.34122889, 0.44029075]])
>>> rand_draw2
array([[ 0.26229975, 0.02754367, 0.7989174 , 0.94619982],
[ 0.40869498, 0.01327566, 0.06437938, 0.94647506],
[ 0.37552669, 0.8365069 , 0.44490398, 0.3943413 ],
[ 0.27263619, 0.40379047, 0.43227555, 0.61552473],
[ 0.55214161, 0.21380748, 0.34122889, 0.44029075]])

参见例如here以很好地解释 Python 中的名称是如何工作的。

关于python - 在numpy中绘制相同的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25076440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com