Consider using a generator instead 'max(b.max() for b in beta.values())'
828 beta_max = (
829 beta.max()
830 if isinstance(returns, _pd.Series)
831 else max([b.max() for b in beta.values()]) 832 )
833 mmin = min([-100, int(beta_min * 100)])
834 mmax = max([100, int(beta_max * 100)])
Consider using a generator instead 'min(b.min() for b in beta.values())'
823 beta_min = (
824 beta.min()
825 if isinstance(returns, _pd.Series)
826 else min([b.min() for b in beta.values()]) 827 )
828 beta_max = (
829 beta.max()
Description
Using a container in place of a generator for a calls that can accept both, slows down the performance. Consider using generators for all function calls which accept both containers and genertors.
Bad practice
# List comprehension is unnecessary here
set([student.name for student in student])
sum([y**2 for y in list(range(10))])
Recommended
set(student.name for student in students)
sum(y**2 for y in list(range(10)))