def inverse_transform(value, left_scale, right_scale, scale=0):
if left_scale is None or right_scale is None:
raise Exception('Left or Right scales cannot be None.')
if scale not in [0, 1]:
raise Exception('Scale must be 0 or 1.')
invalid_err = np.geterr().get('invalid')
np.seterr(invalid='ignore')
if scale == 0:
range_ = np.absolute(right_scale - left_scale)
translated_value = value * range_
if (left_scale > right_scale):
ret_val = left_scale - translated_value
else:
ret_val = left_scale + translated_value
else:
ls = np.log10(left_scale)
rs = np.log10(right_scale)
range_ = rs - ls
translated_value = value * range_
translated_value = np.round(translated_value, 3)
translated_value = translated_value + ls
ret_val = np.power(10, translated_value)
np.seterr(invalid=invalid_err)
return ret_val
###############################################################################
###############################################################################
评论列表
文章目录