Source code for impyute.imputation.cs.random
import numpy as np
from impyute.ops import matrix
from impyute.ops import wrapper
[docs]@wrapper.wrappers
@wrapper.checks
def random(data):
""" Fill missing values in with a randomly selected value from the same
column.
Parameters
----------
data: numpy.ndarray
Data to impute.
Returns
-------
numpy.ndarray
Imputed data.
"""
nan_xy = matrix.nan_indices(data)
for x, y in nan_xy:
uniques = np.unique(data[:, y])
uniques = uniques[~np.isnan(uniques)]
data[x][y] = np.random.choice(uniques)
return data