@@ -927,6 +927,9 @@ class OneHotEncoder(BaseEstimator, TransformerMixin):
927927 dtype : number type, default=np.float
928928 Desired dtype of output.
929929
930+ sparse : boolean, default=True
931+ Will return sparse matrix if set True else will return an array.
932+
930933 Attributes
931934 ----------
932935 `active_features_` : array
@@ -953,7 +956,7 @@ class OneHotEncoder(BaseEstimator, TransformerMixin):
953956 >>> enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], \
954957 [1, 0, 2]]) # doctest: +ELLIPSIS
955958 OneHotEncoder(categorical_features='all', dtype=<... 'float'>,
956- n_values='auto')
959+ n_values='auto', sparse=True )
957960 >>> enc.n_values_
958961 array([2, 3, 4])
959962 >>> enc.feature_indices_
@@ -969,10 +972,11 @@ class OneHotEncoder(BaseEstimator, TransformerMixin):
969972 encoding of dictionary items or strings.
970973 """
971974 def __init__ (self , n_values = "auto" , categorical_features = "all" ,
972- dtype = np .float ):
975+ dtype = np .float , sparse = True ):
973976 self .n_values = n_values
974977 self .categorical_features = categorical_features
975978 self .dtype = dtype
979+ self .sparse = sparse
976980
977981 def fit (self , X , y = None ):
978982 """Fit OneHotEncoder to X.
@@ -1033,7 +1037,7 @@ def _fit_transform(self, X):
10331037 out = out [:, active_features ]
10341038 self .active_features_ = active_features
10351039
1036- return out
1040+ return out if self . sparse else out . toarray ()
10371041
10381042 def fit_transform (self , X , y = None ):
10391043 """Fit OneHotEncoder to X, then transform X.
@@ -1069,7 +1073,8 @@ def _transform(self, X):
10691073 dtype = self .dtype ).tocsr ()
10701074 if self .n_values == 'auto' :
10711075 out = out [:, self .active_features_ ]
1072- return out
1076+
1077+ return out if self .sparse else out .toarray ()
10731078
10741079 def transform (self , X ):
10751080 """Transform X using one-hot encoding.
@@ -1081,7 +1086,7 @@ def transform(self, X):
10811086
10821087 Returns
10831088 -------
1084- X_out : sparse matrix, dtype=int
1089+ X_out : sparse matrix if sparse=True else a 2-d array , dtype=int
10851090 Transformed input.
10861091 """
10871092 return _transform_selected (X , self ._transform ,
0 commit comments