python - 有没有办法为所有熊猫功能设置随机状态?
问题描述
random_state
如标题所示,为每个与随机性相关的 pandas 函数设置似乎非常具有指导意义。有什么方法可以只设置一次以确保为所有功能设置随机状态?
解决方案
Pandas 函数通过调用 pd.core.common._random_state 来获取它们的随机源,它接受一个state
参数,默认为 None。从它的文档:
Parameters
----------
state : int, np.random.RandomState, None.
If receives an int, passes to np.random.RandomState() as seed.
If receives an np.random.RandomState object, just returns object.
If receives `None`, returns np.random.
If receives anything else, raises an informative ValueError.
Default None.
因此,如果它得到 None,这是调用者的 random_state 的默认值,它会返回np.random
模块本身:
In [247]: pd.core.common._random_state(None)
Out[247]: <module 'numpy.random' from 'C:\\Python\\lib\\site-packages\\numpy\\random\\__init__.py'>
它将使用全局 numpy 状态。所以:
In [262]: np.random.seed(3)
In [263]: pd.Series(range(10)).sample(3).tolist()
Out[263]: [5, 4, 1]
In [264]: pd.DataFrame({0: range(10)}).sample(3)[0].tolist()
Out[264]: [3, 8, 2]
In [265]: np.random.seed(3)
In [266]: pd.Series(range(10)).sample(3).tolist()
Out[266]: [5, 4, 1]
In [267]: pd.DataFrame({0: range(10)}).sample(3)[0].tolist()
Out[267]: [3, 8, 2]
如果任何方法不尊重这一点,那就是一个错误。
推荐阅读
- r - 根据共享值合并两个数据框
- ios - UIImagePickerController 显示带有灰色背景的专辑列表行
- json - 如何修复 json 中的换行错误:非法未引用字符 ... 必须使用反斜杠进行转义
- mongodb - 引用集合的归档而不是集合 mongodb
- php - 如何在此代码中的页面之间传递参数?
- gcc - arm-linux-gnueabihf 交叉编译链接动态库
- php - 在本地工作时,wordpress 页面中的特殊字符无法使用 src 属性
- json - 进行 json 解组时的空字段
- asp.net - 将所有 href 标签更改为小写
- docker - 如何通过 ssh 进入使用 docker-compose 创建的服务