【问题标题】:How to inspect BitGenerator state in a numpy.random.Generator object?如何检查 numpy.random.Generator 对象中的 BitGenerator 状态?
【发布时间】:2021-12-28 21:14:27
【问题描述】:

如果我有numpy.random.Generator,检查内部使用的BitGenerator 的最佳方法是什么? BitGenerator 是否有任何状态会影响生成的数字?

【问题讨论】:

    标签: numpy random numpy-random


    【解决方案1】:

    在我的测试工作空间中使用生成器

    In [101]: rng.__getstate__()
    Out[101]: 
    {'bit_generator': 'PCG64',
     'state': {'state': 146432235854318609275567707501468323380,
      'inc': 280910788252749725750054959837409577313},
     'has_uint32': 0,
     'uinteger': 454544037}
    

    创建一些随机数后,state 发生变化

    'state': {'state': 189704257871557326744081098317112680436,
    

    【讨论】:

    • 我也添加了一个答案,但我接受你的作为谢谢
    【解决方案2】:

    我知道回答我自己的问题很糟糕,但我只是发现_bit_generatorGenerator 对象的一个​​属性:

    >>> 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}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 2020-05-02
      相关资源
      最近更新 更多