как сгенерировать разные числа с плавающей запятой между [0,1] - PullRequest
0 голосов
/ 20 июня 2020

Я бы хотел использовать 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
```

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Разве ваш isRetention не должен быть True / False вместо символа T / F?

Так или иначе, вы транслировали одно случайное значение по всему кадру данных. Попробуйте вместо этого:

isRetention = ['T']* 28017 + ['F']* 31037
df = pd.DataFrame({
    'isRetention': isRetention,
    'Frequency': np.random.uniform(0,1, len(isRetention))
})
0 голосов
/ 20 июня 2020

Это потому, что вы вызываете np.random.uniform(0, 1) только один раз, поэтому d ['Frecuency'] будет заполнено этим единственным значением. Вы можете попробовать это:

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


print(df)

Вывод:

      isRetention  Frequency
0               T   0.665864
1               T   0.646582
2               T   0.984343
3               T   0.662025
4               T   0.866976
          ...        ...
59049           F   0.261724
59050           F   0.882630
59051           F   0.422858
59052           F   0.515343
59053           F   0.366749
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...