code: def information_ratio(returns, factor_returns):
      """
      Determines the Information ratio of a strategy.
  
      Parameters
      ----------
      returns : pd.Series or np.ndarray
          Daily returns of the strategy, noncumulative.
          - See full explanation in :func:`~empyrical.stats.cum_returns`.
      factor_returns: float / series
          Benchmark return to compare returns against.
  
      Returns
      -------
      float
          The information ratio.
  
      Note
      -----
      See https://en.wikipedia.org/wiki/information_ratio for more details.
  
      """
      if len(returns) < 2:
          return np.nan
  
      active_return = _adjust_returns(returns, factor_returns)
      tracking_error = nanstd(active_return, ddof=1)
      if np.isnan(tracking_error):
          return 0.0
      if tracking_error == 0:
          return np.nan
      return nanmean(active_return) / tracking_error
  
imports: from __future__ import division
  from functools import wraps
  import pandas
  import numpy
  from scipy import stats
  from six import iteritems
  from empyrical.utils import nanmean, nanstd, nanmin
label_desc: Use image node_id 16 for calling a global function with example usage: information_ratio(returns, factor_returns) and returns: unknown, np, int, np