首页 > 解决方案 > 如何更改将 float('inf') 转换为 str 的 python 方式?

问题描述

我的应用程序正在处理数字,其中是 pythons float('inf')。问题是我希望将这样的数字转换为完整的单词:"Infinity"

for x in [float('inf'), float(5.0)]:
    print(x)

结果:

inf
5.0

我希望它是:

Infinity
5.0

我可以以某种方式设置无限在字符串中的表示方式吗?

当然我可以做类似下面的方法:

def cast_num(num):
    if num == float('inf')
        return 'Infinity'
    else:
        return str(num)

但是这种方法成本很高——它必须处理每个数字。

有更好的选择吗?

python中有一些我可以设置的标志吗?(如“setlocale”)

标签: pythoncastinginfinity

解决方案


使用numpy,这对您来说可能是一个很好的解决方案:

import numpy as np

x = np.array([2.0, float('inf'), 5.0], dtype='<U8')

x[x=='inf'] = 'Infinity'
x

推荐阅读