我正在等待另一个开发人员完成一段代码,该代码将返回一个形状为np的数组(100,2000),其值为-1,0或1.
与此同时,我想随机创建一个具有相同特征的数组,这样我就可以在开发和测试方面领先一步.问题是我希望这个随机创建的数组每次都是相同的,所以我不会测试每次重新运行我的进程时不断更改其值的数组.
我可以像这样创建我的数组,但有没有办法创建它,以便每次都相同.我可以腌制物体并解开它,但想知道是否还有另一种方法.
r = np.random.randint(3, size=(100, 2000)) - 1
Run Code Online (Sandbox Code Playgroud) 我试图用不同的种子生成scipy.stats.pareto.rvs(b,loc = 0,scale = 1,size = 1).
在numpy中我们可以使用numpy.random.seed(seed = 233423)播种.
有没有办法播种scipy统计数据生成的随机数.
注意:我没有使用numpy pareto,因为我想给出不同的比例值.
我已经使用 numpy 的随机功能一段时间了,通过调用诸如np.random.choice()或np.random.randint()等方法。我现在发现了创建一个default_rng对象或其他Generator对象的能力:
from numpy.random import default_rng
gen = default_rng()
random_number = gen.integers(10)
Run Code Online (Sandbox Code Playgroud)
到目前为止我一直会使用
np.random.randint(10)
Run Code Online (Sandbox Code Playgroud)
相反,我想知道这两种方式有什么区别。
我能想到的唯一好处是跟踪多个种子,或者想要使用特定的 PRNG,但对于更通用的用例来说,也许也存在差异?
我已阅读文档但我仍然发现难以理解使用的区别
numpy.random.RandomState(0)
Run Code Online (Sandbox Code Playgroud)
要么
numpy.random.seed(0)
Run Code Online (Sandbox Code Playgroud)
它们是否都确保选择随机值的过程在运行中是相同且一致的?