当前位置: 首页 > 面试题库 >

从嵌套列表创建数组时,请抑制Numpy中的科学计数法

谭绍晖
2023-03-14
问题内容

我有一个嵌套的Python列表,如下所示:

my_list = [[3.74, 5162, 13683628846.64, 12783387559.86, 1.81],
 [9.55, 116, 189688622.37, 260332262.0, 1.97],
 [2.2, 768, 6004865.13, 5759960.98, 1.21],
 [3.74, 4062, 3263822121.39, 3066869087.9, 1.93],
 [1.91, 474, 44555062.72, 44555062.72, 0.41],
 [5.8, 5006, 8254968918.1, 7446788272.74, 3.25],
 [4.5, 7887, 30078971595.46, 27814989471.31, 2.18],
 [7.03, 116, 66252511.46, 81109291.0, 1.56],
 [6.52, 116, 47674230.76, 57686991.0, 1.43],
 [1.85, 623, 3002631.96, 2899484.08, 0.64],
 [13.76, 1227, 1737874137.5, 1446511574.32, 4.32],
 [13.76, 1227, 1737874137.5, 1446511574.32, 4.32]]

然后,我导入Numpy,并将打印选项设置为(suppress=True)。创建数组时:

my_array = numpy.array(my_list)

我无法一生压制科学记法:

[[  3.74000000e+00   5.16200000e+03   1.36836288e+10   1.27833876e+10
    1.81000000e+00]
 [  9.55000000e+00   1.16000000e+02   1.89688622e+08   2.60332262e+08
    1.97000000e+00]
 [  2.20000000e+00   7.68000000e+02   6.00486513e+06   5.75996098e+06
    1.21000000e+00]
 [  3.74000000e+00   4.06200000e+03   3.26382212e+09   3.06686909e+09
    1.93000000e+00]
 [  1.91000000e+00   4.74000000e+02   4.45550627e+07   4.45550627e+07
    4.10000000e-01]
 [  5.80000000e+00   5.00600000e+03   8.25496892e+09   7.44678827e+09
    3.25000000e+00]
 [  4.50000000e+00   7.88700000e+03   3.00789716e+10   2.78149895e+10
    2.18000000e+00]
 [  7.03000000e+00   1.16000000e+02   6.62525115e+07   8.11092910e+07
    1.56000000e+00]
 [  6.52000000e+00   1.16000000e+02   4.76742308e+07   5.76869910e+07
    1.43000000e+00]
 [  1.85000000e+00   6.23000000e+02   3.00263196e+06   2.89948408e+06
    6.40000000e-01]
 [  1.37600000e+01   1.22700000e+03   1.73787414e+09   1.44651157e+09
    4.32000000e+00]
 [  1.37600000e+01   1.22700000e+03   1.73787414e+09   1.44651157e+09
    4.32000000e+00]]

如果我直接创建一个简单的numpy数组:

new_array = numpy.array([1.5, 4.65, 7.845])

我没有问题,它显示如下:

[ 1.5    4.65   7.845]

有人知道我的问题是什么吗?


问题答案:

我想您需要的是np.set_printoptions(suppress=True),有关详细信息,请参见此处:http : //pythonquirks.blogspot.fr/2009/10/controlling-
printing-in-numpy.html

有关SciPy.org
numpy文档,其中包括所有功能参数(以上链接未详细介绍抑制功能),请参见此处:https
:
//docs.scipy.org/doc/numpy/reference/generation/numpy.set_printoptions.html



 类似资料:
  • 问题内容: 这是我的代码: 我的商显示为 有什么方法可以压制科学记数法并使其显示为 ?我将使用结果作为字符串。 问题答案: 但是你需要自己管理精度。例如,

  • 问题内容: 我在熊猫中有一个DataFrame,其中一些数字用科学计数法(或指数计数法)表示,如下所示: 科学的表示法使应该进行轻松的比较成为不必要的困难。我认为正是21900的价值将其推向了其他水平。我的意思是1.0被编码。一! 这不起作用: 而且也没有实现抑制,而且我已经绝望了,只能为所有其他float值打开它,而无法关闭它。 问题答案: 您的数据可能是dtype。这是数据的直接复制/粘贴。将

  • 我有一个带有浮动列的Pandas DataFrame,我将其转换为列表,然后转换为字符串,然后写入文本文件以供其他用途。 例如: 但是,我需要转换后的浮点数不使用科学记数法(本例中为7.569999997E-05)。抑制这些浮动的科学符号的最佳方式是什么?在Pandas数据框架中提前或在序列转换为列表后进行更合理吗? 我研究了“float\u format”参数,该参数可以使用“to\u csv”

  • 问题内容: 我正在尝试从JSON创建嵌套的UL。我能够遍历并从对象中获取数据,但是在构建嵌套UL时遇到了麻烦。我认为’.append’方法放置在错误的位置。生成的LI都分组在一起。我如何创建一个循环(或者也可以用另一种方法)来构建带有正确嵌套的子菜单LI的UL?我曾尝试使用其他类似的帖子来解决我的问题,但是我的数据和代码似乎没有任何意义。对此有些不解之举- 我尝试了几种方法来创建此动态列表,但到目

  • 我有一个阵列列表多地图- 它显示为json,如下所示: 但我需要如何将其解析为:

  • 问题内容: 如何对pandas的groupby运算输出的格式进行修改,从而产生大量的科学计数法? 我知道如何在python中进行字符串格式化,但是在这里应用它时我很茫然。 如果我转换为字符串,这会抑制科学计数法,但是现在我只是想知道如何设置字符串格式并添加小数。 问题答案: 当然,我在评论中链接的答案不是很有帮助。您可以像这样指定自己的字符串转换器。 我不确定这是否是首选的方法,但是可以。 仅出于