code: def round_numbers(numbers, sig_digits=4):
      """Rounds numbers to significant figure.
  
      Rounds numbers to a specified significant figure, and uses string to format it.
      The number will be displayed in scientific mode if there are leading/trailing zeros.
      Displays zero as 0.
  
      Parameters
      ----------
      numbers : `iterable` [ `float` or `int` ]
          Numbers to be formatted.
      sig_digits : `int`, default 4.
          Significant figure.
  
      Returns
      -------
      formatted_numbers : `numpy.array`
          Formatted numbers.
      """
  
      def round_number(number):
          if abs(number) < 1e-40:
              new_num = "0."
          elif ~np.isfinite(number):
              new_num = "nan"
          else:
              num_digit = (
                  -int(np.floor(np.log10(abs(number)))) + sig_digits - 1
              )
              new_num = np.round(number, num_digit)
              new_num = (
                  "{:.3e}".format(new_num)
                  if abs(new_num) > 10**sig_digits
                  or abs(new_num) < 10 ** (-sig_digits)
                  else str(new_num)
              )
          return new_num
  
      return np.vectorize(round_number)(numbers)
  
imports: import numpy
  import pandas
  import statsmodels
  import statsmodels.api
  from scipy.stats import f
  from scipy.stats import norm
  from scipy.stats import t
  from sklearn.base import clone
  from sklearn.linear_model import Ridge
  from sklearn.model_selection import train_test_split
  from greykite.algo.common.col_name_utils import INTERCEPT
  from greykite.algo.common.col_name_utils import simplify_pred_cols
label_desc: Use image node_id 2 for calling a global function with example usage: round_numbers(numbers, sig_digits) and returns: np, new_num