直接访问 Numpy RandomState 对象的方法
Direct way to access Numpy RandomState object
是否有比 np.random.<some function>.__self__
更直接的方法来访问导入时创建的 RandomState
对象? np.random._rand
和 getattr(np.random, "_rand")
都加注 AttributeError
。前者工作正常但看起来不是很 transparent/Pythonic,尽管最透明的可能只是创建一个单独的 RandomState
对象。目的是将 interal_state
变量传递给直接调用 randomkit 函数的 cython 函数。
您可以使用np.random.get_state()
to access the random state and np.random.set_state()
来设置它。
用法示例:
>>> import numpy as np
>>> state = np.random.get_state()
>>> np.random.rand()
0.5951085367670415
>>> np.random.set_state(state)
>>> np.random.rand()
0.5951085367670415
注意 state
只是一个元组
>>> state
('MT19937', array([3133054952, 999208925, 1226199620, ..., 3991712371, 943990344,
955790602], dtype=uint32), 624, 0, 0.0)
感谢 kazemakase 找到了答案:_rand 可以直接访问,我只需要导入 mtrand。但如果语法不改变,__self__
可能更适合未来。
是否有比 np.random.<some function>.__self__
更直接的方法来访问导入时创建的 RandomState
对象? np.random._rand
和 getattr(np.random, "_rand")
都加注 AttributeError
。前者工作正常但看起来不是很 transparent/Pythonic,尽管最透明的可能只是创建一个单独的 RandomState
对象。目的是将 interal_state
变量传递给直接调用 randomkit 函数的 cython 函数。
您可以使用np.random.get_state()
to access the random state and np.random.set_state()
来设置它。
用法示例:
>>> import numpy as np
>>> state = np.random.get_state()
>>> np.random.rand()
0.5951085367670415
>>> np.random.set_state(state)
>>> np.random.rand()
0.5951085367670415
注意 state
只是一个元组
>>> state
('MT19937', array([3133054952, 999208925, 1226199620, ..., 3991712371, 943990344,
955790602], dtype=uint32), 624, 0, 0.0)
感谢 kazemakase 找到了答案:_rand 可以直接访问,我只需要导入 mtrand。但如果语法不改变,__self__
可能更适合未来。