当前位置:   article > 正文

python 科学计数法的小数转换_numpy 1e-7转为小数

numpy 1e-7转为小数

python 科学计数法的小数转换

一. 问题

float转换str时,使用str()方法可以便捷的实现转换.但小数位太长的数会默认转换为科学计数法的格式,如:

>print(str(0.000001))
1e-06
  • 1
  • 2

实际应用中,这种形式的数据往往不是我们想要的.
本文要解决的问题是将一个str格式的带有科学计数法数值的二维数组转换为小数形式

输入数据(str)
-999.    0.    0.    0.    0.
0. 0. 0. 0. 0.
5.00e-02 5.20e+01 2.55e+02 2.55e+02 2.55e+02
6.00e-02 6.90e+01 1.95e+02 2.53e+02 2.55e+02
8.00e-02 1.29e+02 2.21e+02 9.00e+01 2.55e+02
1.00e-01 2.55e+02 1.87e+02 1.50e+01 2.55e+02
1.50e-01 2.55e+02 6.90e+01 1.00e+00 2.55e+02
2.00e-01 2.55e+02 1.50e+02 1.50e+01 2.55e+02
0.4 255.   87.   15.  255. 

期望输出(str)
-999.      0.      0.      0.      0.  
0.      0.      0.      0.      0.  
0.05   52.    255.    255.    255.  
0.06   69.    195.    253.    255.  
0.08  129.    221.     90.    255.  
0.1   255.    187.     15.    255.  
0.15  255.     69.      1.    255.  
0.2   255.    150.     15.    255.  
0.4   255.     87.     15.    255.  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

二. 解决方法

查找到的方法有几种:

1. 格式化字符串f-string语法

https://docs.python.org/3.4/library/string.html#format-specification-mini-language

> number = 0.0000001
> f"Number: {number}"
'Number: 1e-07'
> f"Number: {number:f}"
'Number: 0.000000'
> f"Number: {number:.10f}"
'Number: 0.0000001000'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

只能用于单个浮点数操作

2. numpy取消科学计数法

numpy取消科学计数法.
suppress=True 表示取消科学记数法

>import numpy as np
>np.set_printoptions(suppress=True, threshold=np.nan)
  • 1
  • 2

3. pandas取消科学计数法

>import pandas as pd
>pd.set_option('display.float_format',lambda x : '%.3f' % x)
  • 1
  • 2

三 . 完整代码

def table_process(table):
    np.set_printoptions(suppress=True)
    table_arr = np.fromstring(table, sep='\n')
    table_arr = color_arr.reshape((table_arr.size//5, 5))
    new_table = str(table_arr)
    new_table = re.sub('\\[', '', new_table)
    new_table = re.sub('\\]', '', new_table)
    return new_table
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/148104
推荐阅读
相关标签
  

闽ICP备14008679号