def inverse_transform(self, X_in):
X = X_in.copy(deep=True)<EOL>X = util.convert_input(X)<EOL>if self._dim is None:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>X = self.basen_to_integer(X, self.cols, self.base)<EOL>if X.shape[<NUM_LIT:1>] != self._dim:<EOL><INDENT>if self.drop_invariant:<EOL><INDENT>raise ValueError("<STR_LIT>"<EOL>"<STR_LIT>" % (X.shape[<NUM_LIT:1>],))<EOL><DEDENT>else:<EOL><INDENT>raise ValueError('<STR_LIT>' % (X.shape[<NUM_LIT:1>], self._dim,))<EOL><DEDENT><DEDENT>if not self.cols:<EOL><INDENT>return X if self.return_df else X.values<EOL><DEDENT>for switch in self.ordinal_encoder.mapping:<EOL><INDENT>column_mapping = switch.get('<STR_LIT>')<EOL>inverse = pd.Series(data=column_mapping.index, index=column_mapping.get_values())<EOL>X[switch.get('<STR_LIT>')] = X[switch.get('<STR_LIT>')].map(inverse).astype(switch.get('<STR_LIT>'))<EOL>if self.handle_unknown == '<STR_LIT>' and self.handle_missing == '<STR_LIT>':<EOL><INDENT>for col in self.cols:<EOL><INDENT>if X[switch.get('<STR_LIT>')].isnull().any():<EOL><INDENT>warnings.warn("<STR_LIT>"<EOL>"<STR_LIT>" % (col,))<EOL><DEDENT><DEDENT><DEDENT><DEDENT>return X if self.return_df else X.values<EOL>
Perform the inverse transformation to encoded data.

Parameters
----------
X_in : array-like, shape = [n_samples, n_features]

Returns
-------
p: array, the same size of X_in