python - 有没有办法为所有 Pandas 功能设置随机状态?

标签 python pandas numpy

如标题所示,为每个与随机性相关的 pandas 函数设置 random_state 似乎非常有说服力。有什么方法可以只设置一次以确保为所有函数设置随机状态?

最佳答案

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]

如果任何方法不遵守这一点,那就是错误。

关于python - 有没有办法为所有 Pandas 功能设置随机状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52375356/

相关文章:

python - NumPy:从每行中找到最大值,将其设置为 1,其余为 0

python - 如何用递增的数字填充二维数组?

python - Pandas 数据框 : How to update multiple columns by applying a function?

python - 导入模块时内存使用的区别

python-3.x - 在 Pandas 数据框行中仅保留第一组非 nan 值

mysql - 如何添加缺少数据组合的行并用 0 估算相应字段

python - 如何制作Python图像 'fit'这个数字?

python - Kivy安装没有找到GL/gl.h?

python - 带有 python 循环的多线程

python-3.x - 如何组合 pandas 中的行