首页 > 解决方案 > 如何在 [0,1] 之间生成不同的浮点数

问题描述

我想使用 NumPy 在闭区间 [0,1] 之间随机生成不同的数字。np.random.uniform(0,1) 给了我完全相同的数字,但这不是我想要的。我预计频率列中有 0.606、0.278、0.981、0.699 这些随机数。np.random.randn(0,1) 给我一个错误。

有任何想法吗?提前致谢!

```
df = pd.DataFrame ({
'isRetention': ['T']* 28017 + ['F']* 31037,
'Frequency': np.random.uniform(0, 1)
 })
df



isRetention Frequency
0   T   0.60612
1   T   0.60612
2   T   0.60612
3   T   0.60612
4   T   0.60612
... ... ...
59049   F   0.60612
59050   F   0.60612
59051   F   0.60612
59052   F   0.60612
59053   F   0.60612
```

标签: pythonpandasnumpy

解决方案


您不应该isRetention是 True/False 而不是 T/F 字符吗?

无论如何,您在整个数据帧上广播了一个随机值。试试这个:

isRetention = ['T']* 28017 + ['F']* 31037
df = pd.DataFrame({
    'isRetention': isRetention,
    'Frequency': np.random.uniform(0,1, len(isRetention))
})

推荐阅读