@@ -268,7 +268,7 @@ def plot_partial_dependence(gbrt, X, features, feature_names=None,
268268 # convert feature_names to list
269269 if feature_names is None :
270270 # if not feature_names use fx indices as name
271- feature_names = map (str , range (gbrt .n_features ))
271+ feature_names = list ( map (str , range (gbrt .n_features ) ))
272272 elif isinstance (feature_names , np .ndarray ):
273273 feature_names = feature_names .tolist ()
274274
@@ -300,7 +300,11 @@ def convert_feature(fx):
300300 names = []
301301 try :
302302 for fxs in features :
303- names .append ([feature_names [i ] for i in fxs ])
303+ l = []
304+ # explicit loop so "i" is bound for exception below
305+ for i in fxs :
306+ l .append (feature_names [i ])
307+ names .append (l )
304308 except IndexError :
305309 raise ValueError ('features[i] must be in [0, n_features) '
306310 'but was %d' % i )
@@ -344,7 +348,7 @@ def convert_feature(fx):
344348 # make contour plot
345349 assert len (axes ) == 2
346350 XX , YY = np .meshgrid (axes [0 ], axes [1 ])
347- Z = pdp [label_idx ].reshape (map (np .size , axes )).T
351+ Z = pdp [label_idx ].reshape (list ( map (np .size , axes ) )).T
348352 CS = ax .contour (XX , YY , Z , levels = Z_level , linewidths = 0.5 ,
349353 colors = 'k' )
350354 ax .contourf (XX , YY , Z , levels = Z_level , vmax = Z_level [- 1 ],
0 commit comments