如何强制numpy数组中的数据类型远离科学通知

2024-04-28 22:05:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用numpy数组保存数据
数组正在保存我的日期lke this

1.2251999e+031.2251999e+031.2251999e+02

我更喜欢将其作为浮点数保存

我如何强制数组保存数据,就像我希望它保存10的位置一样。而不是1.0+01

谢谢


Tags: 数据numpy数组this浮点数lke
2条回答

这就是输出输出的方式,在内部,它很可能表示为浮点或双精度浮点。如果要显式设置数组的数据类型,可以使用命名参数dtype

import numpy as np
arr = np.array([1, 2, 3], dtype='float')

如果要控制数据在终端中的打印方式,refer to this

您需要的是:

np.set_printoptions(suppress=True)

然而,请记住,这只是印刷风格。在内部,它们都以浮点(包括尾数和指数)格式存储。另外,请注意,如果最大数与最小数的比率大于尾数大小可以处理的大小(我认为大约是51位),那么即使设置suppress=True,它也将强制使用科学记数法

示例代码:

a = np.array([1.234,0.0000002, 1000000])

np.set_printoptions(suppress=True)
[      1.234           0.0000002 1000000.       ]

您可以添加floatmode参数,用0填充空格(它设置不同样式的打印浮点数):

np.set_printoptions(suppress=True,floatmode='maxprec_equal')
[     1.2340000      0.0000002 100000.0000000]

np.set_printoptions(suppress=True,floatmode='fixed')
[     1.23400000      0.00000020 100000.00000000]

如果增加精度:

np.set_printoptions(suppress=True,floatmode='maxprec',precision=2)
[     1.23      0.   100000.  ]

相关问题 更多 >