【问题标题】:Automatically process numbers in e (scientific) notation in python在python中自动处理e(科学)符号中的数字
【发布时间】:2011-09-23 10:34:57
【问题描述】:

我正在从质谱仪读取数据文件,其中许多数字都是 e 格式,例如

4096.26 5.785e1
4096.29 5.784e1
4096.31 5.784e1
4096.33 5.784e1
4096.36 5.783e1

我打算使用 split 函数来获取这两个数字,但我想知道是否有一个函数可以将第二列转换为 python 浮点数?我知道我可以用正则表达式做到这一点,但认为可能有更好的方法

谢谢

【问题讨论】:

    标签: python numbers


    【解决方案1】:

    float() 构造函数将接受 e 表示法中的字符串:

    >>> float("5.785e1")
    57.85
    

    因此您可以简单地使用map(float, line.split()) 将文本行转换为浮点数列表。

    【讨论】:

    • 我用 python 见过的最好的东西
    • @Joeydanieldarko 它totally will.
    • @SvenMarnach 它将返回 8.7e-07 这不是浮点数
    • @Joeydanieldarko 我不确定你是如何得出这个结论的,但请放心,float() 构造函数返回的对象始终是float
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 2021-09-13
    • 2012-07-24
    • 1970-01-01
    相关资源
    最近更新 更多