code: def sigfig_int(values, sigfig):
      
      values = np.asanyarray(values).reshape(-1)
      sigfig = np.asanyarray(sigfig, dtype=np.int).reshape(-1)
  
      if sigfig.shape != values.shape:
          raise ValueError('sigfig must match identifier')
  
      exponent = np.zeros(len(values))
      nonzero = np.abs(values) > TOL_ZERO
      exponent[nonzero] = np.floor(np.log10(np.abs(values[nonzero])))
  
      multiplier = exponent - sigfig + 1
  
      as_int = np.round(values / (10**multiplier)).astype(np.int32)
  
      return as_int, multiplier
docs: Convert a set of floating point values into integers with a specified number
      of significant figures and an exponent.
  
      Parameters
      ------------
      values: (n,) float or int, array of values
      sigfig: (n,) int, number of significant figures to keep
  
      Returns
      ------------
      as_int:      (n,) int, every value[i] has sigfig[i] digits
      multiplier:  (n, int), exponent, so as_int * 10 ** multiplier is
                   the same order of magnitude as the input