bashplot.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:odin 作者: imito 项目源码 文件源码
def print_hinton(arr, max_arr=None):
  ''' Print bar string, fast way to visual magnitude of value in terminal

  Example:
  -------
  >>> W = np.random.rand(10,10)
  >>> print_hinton(W)
  >>> ?????? ???
  >>> ????? ??
  >>> ??????????
  >>> ??????????
  >>> ? ?  ?????
  >>> ??????? ??
  >>>  ??? ?????
  >>> ???? ? ???
  >>> ??????????
  >>> ??? ??? ??
  Returns
  -------
  return : str
      plot of array, for example: ????
  '''
  arr = np.asarray(arr)
  if len(arr.shape) == 1:
    arr = arr[None, :]

  def visual_func(val, max_val):
    if abs(val) == max_val:
      step = len(_chars) - 1
    else:
      step = int(abs(float(val) / max_val) * len(_chars))
    colourstart = ""
    colourend = ""
    if val < 0:
      colourstart, colourend = '\033[90m', '\033[0m'
    return colourstart + _chars[step] + colourend

  if max_arr is None:
    max_arr = arr
  max_val = max(abs(np.max(max_arr)), abs(np.min(max_arr)))
  # print(np.array2string(arr,
  #                       formatter={'float_kind': lambda x: visual(x, max_val)},
  #                       max_line_width=5000)
  # )
  f = np.vectorize(visual_func)
  result = f(arr, max_val) # array of ????
  rval = ''
  for r in result:
    rval += ''.join(r) + '\n'

  return rval[:-1]
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号