docstr: Given a float number, returns a "reasonable" ExpFormat instance to
  represent any number between -n and n.
  
  Parameters
  ----------
  n : float
      max number one wants to be able to represent
  min : int
      minimum number of characters to use for the format
  
  Returns
  -------
  res : ExpFormat
      ExpFormat instance with reasonable (see Notes) computed width
  
  Notes
  -----
  Reasonable should be understood as the minimal string length necessary
  to avoid losing precision.
code: def from_number(cls, n, min=None):
      """Given a float number, returns a "reasonable" ExpFormat instance to
      represent any number between -n and n.
  
      Parameters
      ----------
      n : float
          max number one wants to be able to represent
      min : int
          minimum number of characters to use for the format
  
      Returns
      -------
      res : ExpFormat
          ExpFormat instance with reasonable (see Notes) computed width
  
      Notes
      -----
      Reasonable should be understood as the minimal string length necessary
      to avoid losing precision.
      """
      # len of one number in exp format: sign + 1|0 + "." +
      # number of digit for fractional part + 'E' + sign of exponent +
      # len of exponent
      finfo = np.finfo(n.dtype)
      # Number of digits for fractional part
      n_prec = finfo.precision + 1
      # Number of digits for exponential part
      n_exp = number_digits(
          np.max(np.abs([finfo.maxexp, finfo.minexp]))
      )
      width = 1 + 1 + n_prec + 1 + n_exp + 1
      if n < 0:
          width += 1
      repeat = int(np.floor(80 / width))
      return cls(width, n_prec, min, repeat=repeat)
  
imports: from __future__ import division, print_function, absolute_import
  import re
  import numpy
label_desc: Use image node_id 1 for calling the ExpFormat obj's underlying member method code with example usage: obj.from_number(cls, n, min) and returns: cls