Python 更改 ndarray 数字格式为多位数
我刚开始学Python,常常感到困惑和卡壳...
我在读取一个包含数字表格的文件时,它被读取成了一个numpy.ndarray。
Python会改变数字的显示方式。比如:
在输入文件中,我有这个数字:56143.0254154,而在输出文件中,这个数字显示成了:5.61430254e+04。
但我想在输出文件中保持原来的格式。
我试过使用string.format或者locale.format函数,但都没有成功。
有没有人能帮我解决这个问题?
谢谢!
Ruxy
3 个回答
0
你需要创建一个格式化的字符串。假设变量 number 是你想要打印的数字,在 Python 2.7 或 3 中,你可以使用
print("{:20.7f}".format(number))
而在 Python 2 中,你可以使用
print "%20.7f" % number
另外,如果你使用 Numpy 的方法来输出数组,可以参考 Warren 提出的方式。
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
试试 numpy.set_printoptions()
这个功能——在这里你可以设置打印出来的数字位数,还可以关闭科学计数法的显示。比如,使用 numpy.set_printoptions(precision=8,suppress=True)
这个命令,就可以让输出显示8位数字,并且不会出现像“…e+xx”这样的格式。