写点什么

如何在 Python 中实现 Round 函数?

发布于: 2021 年 03 月 23 日

​​​​​​​​​​​​​​摘要:在本文中,介绍了什么是 round 函数以及如何从 python 内核中实现它。同时,还介绍舍入函数的一些缺点,以及如何纠正它们,如何在数据科学中广泛使用的库中发挥作用。


本文分享自华为云社区《从零开始学python| 如何在Python中实现Round函数?》,原文作者:Yuchuan 。


Python 中的舍入函数,返回浮点数,该浮点数是指定数字的舍入版本。本文将详细探讨这一概念。本文将介绍以下内容:

  • Pythonround()

  • PracticalApplication

  • RoundingNumPy Arrays

  • RoundingPandas Series and DataFrame

  • DataFrame


那么,让我们开始吧

Python 中的舍入函数


round(x,n)方法将返回 x 的值,该值四舍五入到小数点后的 n 位数字。


例如:

round(7.6 + 8.7,1)


输出:

16.3


回合赋予此功能以提供最接近的价值


例如:

round(6.543231,2)


输出:

6.54


有时无法提供正确的输出


示例:

round(2.675,2)#应该返回 2.68,但不会返回


输出:

2.67


有时它给出正确的输出


例如:

round(8.875,2)


输出:

8.88


继续本文有关 Python 中的舍入函数的文章。

Python 回合()


python 中的舍入函数将十进制值四舍五入为给定的位数,如果我们不提供 n(即十进制后的位数),则会将数字四舍五入为最接近的整数。


如果其后的整数>= 5,则四舍五入为 ceil;如果小数为<5,则四舍五入为整数。


没有第二个参数的 round()



输出:

12

67

46

92


现在,如果提供了第二个参数,则如果 last_digit + 1> = 5,则最后一个十进制数字将增加 1 直至舍入后的值,否则它将与提供的相同。


带有第二个参数的 round()



输出:

3.77

3.78

3.77


继续本文有关 Python 中的舍入函数的文章。

实际应用:


四舍五入函数的一些应用是将数字四舍五入为有限的数字,例如,如果要将小数表示为小数,我们通常也将小数点后的数字设为 2 或 3,以便可以精确地表示小数。



输出:

0.3333333333333333

0.33


在这个数据科学和计算时代,我们通常将数据存储为 Numpy 数组或 pandas 数据框,其中舍入在准确计算操作方面起着非常重要的作用,类似于 python 中的 round 函数 Numpy 或 Pandas 接受两个参数数据和数字,即我们要四舍五入的数据以及十进制后必须四舍五入的位数,并将其应用于所有行和列。让我们看一些例子。


继续阅读有关 Python:Round Function 的文章。

舍入 NumPy 数组


要安装 NumPy,您可以使用:



​除此之外,如果您正在使用 Anaconda 环境,它将已经安装,要舍入 NumPy 数组的所有值,我们会将数据作为参数传递给 np.around()函数。


现在,我们将创建一个 3×4 大小的 NumPy 数组,其中包含浮点数,如下所示:



输出:

[[0.35743992 0.3775384 1.38233789 1.17554883]

[-0.9392757 -1.14315015 -0.54243951 -0.54870808]

[0.20851975 0.21268956 1.26802054 -0.80730293]]


例如,以下将数据中的所有值四舍五入到小数点后三位:



输出:

[[0.357 0.378 1.382 1.176]

[-0.939 -1.143 -0.542 -0.549]

[0.209 0.213 1.268 -0.807]]


np.around()可用于更正浮点错误。


我们可以在下面的示例中看到 3×1 的元素为 0.20851975,您希望该值为 0.208,但是将其四舍五入为 0.209,还可以看到 1×2 的值正确舍入为 0.378。


因此,如果需要将数据四舍五入为所需的形式,NumPy 有很多方法:

  • numpy.ceil()

  • numpy.floor()

  • numpy.trunc()

  • numpy.rint()


np.ceil()函数将数组中的每个值四舍五入为大于或等于原始值的最接近的整数:

打印(np.ceil(数据))


输出:

[[1. 1. 2. 2.]

[-0。-1。-0。-0。]

[1. 1. 2. -0。]]


要将每个值四舍五入为最接近的整数,请使用 np.floor():



输出:

[[0. 0. 1. 1.]

[-1。-2。-1。-1。]

[0. 0. 1. -1。]]


您还可以使用 np.trunc()将每个值截断为其整数部分:



输出:

[[0. 0. 1. 1.]

[-0。-1。-0。-0。]

[0. 0. 1. -0。]]


最后,要使用“舍入一半到偶数”策略舍入到最接近的整数,请使用 np.rint():



输出:

[[0. 0. 1. 1.]

[-1。-1。-1。-1。]

[0. 0. 1. -1。]]


继续阅读有关 Python:Round Function 的文章。

RoundingPandas Series and DataFrame


Pandas 是另一个供数据科学家使用的流行图书馆,用于分析数据。

与 NumPy 相似,我们可以使用以下命令安装该库:



​Pandas 的两个主要数据结构是 DataFrame 和 Series,DataFrame 基本上就像数据库中的表,而 Series 是列。我们可以使用 Series.round()和 DataFrame.round()对对象进行四舍五入。



输出:

0 0.357440

1 0.377538

2 1.382338

3 1.175549 dtype

:float64

print(series.round(2))

0 0.36

1 0.38

2 1.38

3 1.18

dtype:float64


继续阅读有关 Python 的文章:Round 函数

数据框:



输出:

第 1 列第 2 列第 3

0 0.357440 0.377538 1.382338

1 1.175549 -0.939276 -1.143150

2 -0.542440 -0.548708 0.208520


第 1 列第 2 列 3

0 0.357 0.378 1.382

1 1.176 -0.939 -1.143

2 -0.542 -0.549 0.209


对于 DataFrame,我们可以为每列指定不同的精度,因此,round 函数可以接受字典或 Series,因此我们可以为不同的列提供不同的精度。


print(df.round({“第 1 列”:1,“第 2 列”:2,“第 3 列”:3}))


输出:

第 1 列第 2 列 3

0 0.4 0.38 1.382

1 1.2 -0.94 -1.143

2 -0.5 -0.55 0.209

结束语


在本文中,我们介绍了什么是 round 函数以及如何从 python 内核中实现它。我们还介绍了舍入函数的一些缺点,以及如何纠正它们以及如何在数据科学中广泛使用的库中发挥作用。


点击关注,第一时间了解华为云新鲜技术~


发布于: 2021 年 03 月 23 日阅读数: 12
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
如何在Python中实现Round函数?