我是python的初学者,很容易陷入困境......
当我读取一个包含带数字的数字的表的文件时,它会将其读作numpy.ndarray
Python正在改变数字的显示。 例如: 在输入文件中,我有这个号码:56143.0254154 在输出文件中,编号为:5.61430254e + 04
但我想在输出文件中保留第一种格式。 我试图使用string.format或locale.format函数,但它不起作用
有人可以帮我这么做吗?
谢谢! Ruxy
答案 0 :(得分:1)
尝试numpy.set_printoptions()
- 您可以在指定打印的位数并禁止科学计数法。例如,numpy.set_printoptions(precision=8,suppress=True)
将打印8位数字,而不是“... e + xx”。
答案 1 :(得分:1)
如果要打印numpy数组,可以使用set_printoptions
函数控制不同数据类型的格式。例如:
In [39]: a = array([56143.0254154, 1.234, 0.012345])
In [40]: print(a)
[ 5.61430254e+04 1.23400000e+00 1.23450000e-02]
In [41]: set_printoptions(formatter=dict(float=lambda t: "%14.7f" % t))
In [42]: print(a)
[ 56143.0254154 1.2340000 0.0123450]
答案 2 :(得分:0)
您必须创建格式化字符串。假设变量号包含您要打印的数字,在Python 2.7或3中,您可以使用
print("{:20.7f}".format(number))
而在Python 2中:
print "%20.7f" % number
或者,如果您使用Numpy例程来写出数组,请使用Warren建议的方法。