gpt4 book ai didi

python - np.random.rand() 或 random.random()

转载 作者:行者123 更新时间:2023-12-04 14:43:38 28 4
gpt4 key购买 nike

在分析代码时,我偶然发现了以下代码段:

msk = np.random.rand(len(df)) < 0.8
变量“msk”和“df”与我的问题无关。经过一些研究,我认为这种用法也与“随机”类有关。它在随机元素上以 80% 的几率给出 True,以 20% 的几率给出 False。它是为了掩蔽而完成的。我明白为什么使用它,但我不明白它是如何工作的。随机方法不是应该给出浮点数吗?当我们把方法放在一个区间时,为什么会有 bool 语句?

最佳答案

np.random.rand(len(df))返回 0 到 1 之间的均匀随机数数组,np.random.rand(len(df)) < 0.8将根据条件将其转换为 bool 数组。
因为有 80% 的机会低于 0.8,所以有 80% 的 True 值。
更明确的方法是使用 numpy.random.choice :

np.random.choice([True, False], p=[0.8, 0.2], size=len(df))
如果您的目标是对数据帧进行子集化,则更好的方法是使用:
df.sample(frac=0.8)
如何拆分数据帧 0.8/0.2:
df1 = df.sample(frac=0.8)
df2 = df.drop(df1.index)

关于python - np.random.rand() 或 random.random(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69084646/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com