@@ -142,7 +142,7 @@ def _smacof_single(similarities, metric=True, n_components=2, init=None,
142142 if np .any ((similarities - similarities .T ) > eps ):
143143 raise ValueError ("similarities must be symmetric" )
144144
145- sim_flat = ((1 - np .tri (n_samples )) * similarities ).flatten ()
145+ sim_flat = ((1 - np .tri (n_samples )) * similarities ).ravel ()
146146 sim_flat_w = sim_flat [sim_flat != 0 ]
147147 if init is None :
148148 # Randomly choose initial configuration
@@ -164,7 +164,7 @@ def _smacof_single(similarities, metric=True, n_components=2, init=None,
164164 if metric :
165165 disparities = similarities
166166 else :
167- dis_flat = dis .flatten ()
167+ dis_flat = dis .ravel ()
168168 # similarities with 0 are considered as missing values
169169 dis_flat_w = dis_flat [sim_flat != 0 ]
170170
@@ -178,12 +178,12 @@ def _smacof_single(similarities, metric=True, n_components=2, init=None,
178178 (disparities ** 2 ).sum ())
179179
180180 # Compute stress
181- stress = ((dis .flatten () - \
182- disparities .flatten ()) ** 2 ).sum () / 2
181+ stress = ((dis .ravel () - \
182+ disparities .ravel ()) ** 2 ).sum () / 2
183183
184184 # Update X using the Guttman transform
185+ dis [dis == 0 ] = 1e-5
185186 ratio = disparities / dis
186- ratio [np .isinf (ratio ) | np .isnan (ratio )] = 0
187187 B = - ratio
188188 B [np .arange (len (B )), np .arange (len (B ))] += ratio .sum (axis = 1 )
189189 X = 1. / n_samples * np .dot (B , X )
0 commit comments