Вы можете сгенерировать массив случайных чисел с плавающей запятой, а затем создать маску с 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 ])