ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python不使用科学计数输出

2021-10-22 15:03:14  阅读:216  来源: 互联网

标签:输出 Python numpy python 计数 科学 0.91


一、需求

        当我执行以下代码时,得到的均为科学计数输出结果。

import torch
import numpy as np

# python的科学计数输出
print('科学计数输出 in python:', 0.0000000000000000002554, 0.91)

# numpy中的科学计数输出
print('科学计数输出 in numpy:', np.array([0.0000000000000000002554, 0.91]))

# pytorch中的科学计数输出
print('科学计数输出 in pytorch:', torch.tensor([0.0000000000000000002554, 0.91]))

        输出

科学计数输出 in python: 2.554e-19 0.91
科学计数输出 in numpy: [2.554e-19 9.100e-01]
科学计数输出 in pytorch: tensor([2.5540e-19, 9.1000e-01])

        然而,尽管它很科学,有时候还是觉得这样的输出并不够直观。因此,如果想要看到非科学计数法表示的数字输出,那么我们该怎么办呢?

二、解决方案

        实际上没有太过于完美的解决方案,但我是这么做的

import torch
import numpy as np

# python的科学计数输出
print('科学计数输出 in python:', 0.0000000000000000002554, 0.91)
# 关闭python的科学计数输出
print('非科学计数输出 in python: %.4f %.4f' % (0.0000000000000000002554, 0.91))

# numpy中的科学计数输出
print('科学计数输出 in numpy:', np.array([0.0000000000000000002554, 0.91]))
# 关闭numpy中的科学计数输出
np.set_printoptions(precision=4, suppress=True)
print('非科学计数输出 in numpy:', np.array([0.0000000000000000002554, 0.91]))

# pytorch中的科学计数输出
print('科学计数输出 in pytorch:', torch.tensor([0.0000000000000000002554, 0.91]))
# 关闭pytorch中的科学计数输出
torch.set_printoptions(precision=4, sci_mode=False)
print('非科学计数输出 in pytorch:', torch.tensor([0.0000000000000000002554, 0.91]))

        输出如下

科学计数输出 in python: 2.554e-19 0.91
非科学计数输出 in python: 0.0000 0.9100
科学计数输出 in numpy: [2.554e-19 9.100e-01]
非科学计数输出 in numpy: [0.   0.91]
科学计数输出 in pytorch: tensor([2.5540e-19, 9.1000e-01])
非科学计数输出 in pytorch: tensor([    0.0000,     0.9100])

        可以看到,如果小数精确位数设置得不对的话,就会丢失一些信息。当然,你可以设定很多的精确位,以确保打印的数字不会丢失精度,然而,这样打印就不美观了,因为如果精确位设置得过大那么就会打印出很多位多余的0。因此,以上解决方案均不是很完美,仅供参考。不过想一想,应该还是有办法解决去除多余的0的,我是说,通过自己写一个算法的方式。

标签:输出,Python,numpy,python,计数,科学,0.91
来源: https://blog.csdn.net/qq_36158230/article/details/120903217

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有