Как генерировать случайные значения, включая NaN? - PullRequest
0 голосов
/ 31 декабря 2018

Я хотел бы сгенерировать случайное плавающее число, включая NaN во фрейме данных с np.random.randn

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Если вы работаете с DataFrame, вы можете использовать apply.

import numpy as np
import pandas as np

df = pd.DataFrame()
df['a'] = np.zeros(10) # or get data from somewhere else
p = 2/7
df.a.apply(lambda x: np.nan if np.random.rand() < p else np.random.rand())
0 голосов
/ 31 декабря 2018

Вы можете сгенерировать массив случайных чисел с плавающей запятой, а затем создать маску с np.choice, используя p, чтобы позволить вам установить вес для числа NaN, которое будет включено.

Что-то вроде:

import numpy as np
a = np.random.randn(20)
mask = np.random.choice([1, 0], a.shape, p=[.1, .9]).astype(bool)
a[mask] = np.nan

Результат:

array([ 1.2769248 ,  0.5949608 , -1.38006737,  0.3582266 , -1.852884  ,
        0.81121663, -1.45830948,  0.03117856,  0.54509948,  1.22019729,
        1.71643753,         nan, -0.32470862, -0.77604474,  0.76698089,
       -0.47863251,         nan, -0.33308071, -0.32026717,  1.8493752 ])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...