# 12. Imputation

## 12.1. Simple imputer

[1]:
import numpy as np
from sklearn.impute import SimpleImputer

X = [
[7, 2, 3],
[4, np.nan, 6],
[10, 5, 9]
]

imp = SimpleImputer(missing_values=np.nan, strategy='mean')
imp.fit(X)
[1]:
missing_values=nan, strategy='mean', verbose=0)
[2]:
imp.transform(X)
[2]:
array([[ 7. ,  2. ,  3. ],
[ 4. ,  3.5,  6. ],
[10. ,  5. ,  9. ]])

## 12.2. Iterative imputer

[3]:
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer

X = [
[7, 2, 3],
[4, np.nan, 6],
[10, 5, 9]
]

imp = IterativeImputer(missing_values=np.nan, random_state=37)
imp.fit(X)
[3]:
imputation_order='ascending', initial_strategy='mean',
max_iter=10, max_value=None, min_value=None,
missing_values=nan, n_nearest_features=None, random_state=37,
sample_posterior=False, tol=0.001, verbose=0)
[4]:
imp.transform(X)
[4]:
array([[ 7.       ,  2.       ,  3.       ],
[ 4.       ,  2.6000004,  6.       ],
[10.       ,  5.       ,  9.       ]])

## 12.3. Missing indicator

[5]:
from sklearn.impute import MissingIndicator

X = [
[7, 2, 3],
[4, np.nan, 6],
[10, 5, 9]
]

ind = MissingIndicator()
ind.fit(X)
[5]:
MissingIndicator(error_on_new=True, features='missing-only', missing_values=nan,
sparse='auto')
[6]:
ind.transform(X)
[6]:
array([[False],
[ True],
[False]])