python更改格式数字ndarray许多数字

时间:2013-02-06 16:06:51

标签: python numpy string-formatting multidimensional-array

我是python的初学者,很容易陷入困境......

当我读取一个包含带数字的数字的表的文件时,它会将其读作numpy.ndarray

Python正在改变数字的显示。 例如: 在输入文件中,我有这个号码:56143.0254154 在输出文件中,编号为:5.61430254e + 04

但我想在输出文件中保留第一种格式。 我试图使用string.format或locale.format函数,但它不起作用

有人可以帮我这么做吗?

谢谢! Ruxy

3 个答案:

答案 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建议的方法。