Python Scientific Notation精度规范化 - python

我的目标只是将诸如“1.2”之类的字符串转换为科学计数法而不增加额外的精度。问题是我总是在输出末尾得到多余的0。

>>> input = "1.2"
>>> print '{:e}'.format(float(input))
1.200000e+00

我试图弄清楚如何只获得1.2e+00。我意识到我可以在format语句中指定精度,但是我不想不必要地截断更长的字符串。我只想抑制训练0。

我尝试使用Decimal.normalize(),该方法在所有情况下都有效,除非e <2。

>>> print Decimal("1.2000e+4").normalize()
1.2E+4
>>> print Decimal("1.2000e+1").normalize()
12

这样更好,除了我不想要12,我想要1.2e + 1。 😛

任何建议将不胜感激!

编辑:
为了清楚起见,已经将输入值适当舍入为现在未知的预定长度。我试图避免重新计算适当的格式精度。

基本上,我可以输入的值为“1.23”和“1234.56”,应分别为“1.23e + 0”和“1.23456e + 3”。

我可能只需要检查输入字符串有多长,并使用它手动指定精度,但是我想检查并确保没有遗漏一些东西,这些东西只会阻止指数格式任意加0。

参考方案

您可以使用以下格式指定精度:

print '{:.2e}'.format(float(input))

这将始终给出2位小数的精度。所需的精度必须由您自己确定。如果您需要有关该帖子的任何帮助,请在评论中。

Python 3运算符>>打印到文件 - python

我有以下Python代码编写项目的依赖文件。它可以在Python 2.x上正常工作,但是在使用Python 3进行测试时会报告错误。depend = None if not nmake: depend = open(".depend", "a") dependmak = open(".depend.mak&#…

python / numpy中的多线程blas - python

我正在尝试在Python中实现大量矩阵矩阵乘法。最初,我假设NumPy将自动使用我的线程BLAS库,因为我是根据这些库构建它的。但是,当我查看top或其他内容时,似乎代码根本不使用线程。有什么想法是错误的,或者我可以做些什么来轻松使用BLAS性能? 参考方案 并非所有的Nu​​mPy都使用BLAS,只有某些功能-特别是dot(),vdot()和innerpr…

Python:对于长时间运行的进程,通过还是休眠? - python

我正在编写一个队列处理应用程序,该应用程序使用线程等待和响应要发送到该应用程序的队列消息。对于应用程序的主要部分,只需要保持活动状态即可。对于像这样的代码示例:而True: 通过要么而True: time.sleep(1)哪一个对系统的影响最小?除了保持python应用运行外,什么都不做的首选方式是什么? 参考方案 我可以想象time.sleep()会减少系…

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

Python:无符号32位按位算术 - python

试图回答另一篇有关其解决方案涉及IP地址和网络掩码的文章时,我陷入了普通的按位算法。在Python中,是否存在一种标准的方式来进行按位AND,OR,XOR,NOT运算,假设输入是“32位”(可能是负数)整数或long,并且结果必须是[[ 0,2 ** 32]?换句话说,我需要一个与无符号长整数之间的C按位运算有效的Python对应物。编辑:具体问题是这样的:…