如何检查 numpy.random.Generator 对象中的 BitGenerator 状态?
How to inspect BitGenerator state in a numpy.random.Generator object?
如果我有 numpy.random.Generator
,检查内部使用的 BitGenerator
的最佳方法是什么? BitGenerator
是否有任何状态会影响生成的数字?
在我的测试工作中使用了生成器space
In [101]: rng.__getstate__()
Out[101]:
{'bit_generator': 'PCG64',
'state': {'state': 146432235854318609275567707501468323380,
'inc': 280910788252749725750054959837409577313},
'has_uint32': 0,
'uinteger': 454544037}
创建一些随机数后,state
发生变化
'state': {'state': 189704257871557326744081098317112680436,
我知道回答我自己的问题很蹩脚,但我确实发现 _bit_generator
是 Generator
对象的一个属性:
>>> import numpy as np
>>> rng = np.random.default_rng(seed=0)
>>> print(rng._bit_generator)
<numpy.random._pcg64.PCG64 at 0x7f97c7bb7b90>
>>> print(rng._bit_generator.state)
{'bit_generator': 'PCG64',
'state': {'state': 35399562948360463058890781895381311971,
'inc': 87136372517582989555478159403783844777},
'has_uint32': 0,
'uinteger': 0}
如果我有 numpy.random.Generator
,检查内部使用的 BitGenerator
的最佳方法是什么? BitGenerator
是否有任何状态会影响生成的数字?
在我的测试工作中使用了生成器space
In [101]: rng.__getstate__()
Out[101]:
{'bit_generator': 'PCG64',
'state': {'state': 146432235854318609275567707501468323380,
'inc': 280910788252749725750054959837409577313},
'has_uint32': 0,
'uinteger': 454544037}
创建一些随机数后,state
发生变化
'state': {'state': 189704257871557326744081098317112680436,
我知道回答我自己的问题很蹩脚,但我确实发现 _bit_generator
是 Generator
对象的一个属性:
>>> import numpy as np
>>> rng = np.random.default_rng(seed=0)
>>> print(rng._bit_generator)
<numpy.random._pcg64.PCG64 at 0x7f97c7bb7b90>
>>> print(rng._bit_generator.state)
{'bit_generator': 'PCG64',
'state': {'state': 35399562948360463058890781895381311971,
'inc': 87136372517582989555478159403783844777},
'has_uint32': 0,
'uinteger': 0}