关于python:Python中Round函数怎么解释怎么用

6次阅读

共计 3463 个字符,预计需要花费 9 分钟才能阅读完成。

摘要: 在本文中,介绍了什么是 round 函数以及如何从 python 内核中实现它。同时,还介绍舍入函数的一些毛病,以及如何纠正它们,如何在数据迷信中宽泛应用的库中发挥作用。

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

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

  • Python round()
  • Practical Application
  • Rounding NumPy Arrays
  • Rounding Pandas Series and DataFrame
  • Data Frame

那么,让咱们开始吧,

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()

#int
print(round(12))
#float
print(round(66.6))
print(round(45.5))
print(round(92.4))

输入:
12
67
46
92

当初,如果提供了第二个参数,则如果 last_digit + 1> = 5,则最初一个十进制数字将减少 1 直至舍入后的值,否则它将与提供的雷同。

带有第二个参数的 round()

# when last_digit+1 =5
print(round(3.775, 2))
# when last_digit+1 is >=5
print(round(3.776, 2))
# when if last_digit+1 is <5
print(round(3.773, 2))

输入:
3.77
3.78
3.77

持续本文无关 Python 中的舍入函数的文章。

理论利用:

四舍五入函数的一些利用是将数字四舍五入为无限的数字,例如,如果要将小数示意为小数,咱们通常也将小数点后的数字设为 2 或 3,以便能够准确地示意小数。

b=2/6
print(b)
print(round(b, 2))

输入:
0.3333333333333333
0.33

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

持续浏览无关 Python:Round Function 的文章。

舍入 NumPy 数组

要装置 NumPy,您能够应用:

pip3 install numpy

除此之外,如果您正在应用 Anaconda 环境,它将曾经装置,要舍入 NumPy 数组的所有值,咱们会将数据作为参数传递给 np.around()函数。
当初,咱们将创立一个 3×4 大小的 NumPy 数组,其中蕴含浮点数,如下所示:

import numpy as np
np.random.seed(444)
data = np.random.randn(3, 4)
print(data)

输入:
[[0.35743992 0.3775384 1.38233789 1.17554883]
[-0.9392757 -1.14315015 -0.54243951 -0.54870808]
[0.20851975 0.21268956 1.26802054 -0.80730293]]

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

import numpy as np
np.random.seed(444)
data = np.random.randn(3, 4)
print(np.around(data, decimals=3))

输入:
[[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():

print(np.floor(data))

输入:
[[0. 0. 1. 1.]
[-1。-2。-1。-1。]
[0. 0. 1. -1。]]

您还能够应用 np.trunc()将每个值截断为其整数局部:

print(np.trunc(data))

输入:
[[0. 0. 1. 1.]
[-0。-1。-0。-0。]
[0. 0. 1. -0。]]

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

print(np.rint(data))

输入:
[[0. 0. 1. 1.]
[-1。-1。-1。-1。]
[0. 0. 1. -1。]]

持续浏览无关 Python:Round Function 的文章。

Rounding Pandas Series and DataFrame

Pandas 是另一个供数据科学家应用的风行图书馆,用于剖析数据。

与 NumPy 类似,咱们能够应用以下命令装置该库:

pip3 install pandas

Pandas 的两个次要数据结构是 DataFrame 和 Series,DataFrame 基本上就像数据库中的表,而 Series 是列。咱们能够应用 Series.round()和 DataFrame.round()对对象进行四舍五入。

import pandas as pd
import numpy as np
np.random.seed(444)
series = pd.Series(np.random.randn(4))
print(series)

输入:
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 函数

数据框:

import pandas as pd
import numpy as np
np.random.seed(444)
df = pd.DataFrame(np.random.randn(3, 3), columns=["Column 1", "Column 2", "Column 3"])
print(df)
print(df.round(3))

输入:
第 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 内核中实现它。咱们还介绍了舍入函数的一些毛病,以及如何纠正它们以及如何在数据迷信中宽泛应用的库中发挥作用。

点击关注,第一工夫理解华为云陈腐技术~

正文完
 0