【问题标题】:Strange value formatting when converting lists to numpy array将列表转换为 numpy 数组时出现奇怪的值格式
【发布时间】:2020-09-09 18:03:18
【问题描述】:

在将常规数组(列表中的列表)转换为 numpy.array 时,我遇到了一些奇怪的事情。所有的值似乎都以一种奇怪的方式归一化。这是我的常规清单:

print(output)
print(type(output))

result:
[[0, 301227, 0.86, 0.46, -3.55, 0.53, 135.96, 4, 0.49, 0.33, 0.33 ......
<class 'list'>

当我对print(np.array(output)) 执行相同操作时,结果如下:

[[ 0.00000e+00  3.01227e+05  8.60000e-01  4.60000e-01 -3.55000e+00 5.30000e-01.....
<class 'numpy.ndarray'>

我以前从未遇到过这种情况。希望有人可以阐明 干杯

【问题讨论】:

  • 它们没有标准化。这些是原始值,只是以指数表示法打印。

标签: python arrays numpy jupyter


【解决方案1】:

值保持不变,它只是称为E notation 的另一种表示形式,

数字mEn分为e之前和之后两部分:

  1. m左边是乘数
  2. n右边是十的乘方

例如

3.01227e+05 = 3.01227 * 10^5 = 301227

您可以使用set_printoptions 禁止对小数使用E notation

np.set_printoptions(suppress=True)

从文档中标记suppress

如果为 True,则始终使用定点表示法打印浮点数,在这种情况下,当前精度中等于零的数字将打印为零。如果为 False,则当最小数的绝对值 1e3 时使用科学计数法。默认为 False。

【讨论】:

  • 啊,谢谢!然后我可以通过这个np.set_printoptions(suppress=True) 撤消它
  • 完全是@Alex :)
猜你喜欢
  • 2016-07-29
  • 1970-01-01
  • 2018-05-09
  • 2014-08-12
  • 2011-09-17
  • 2018-05-17
  • 2017-03-08
  • 2013-03-22
  • 1970-01-01
相关资源
最近更新 更多