摘要:在本文中,介绍了什么是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()
#intprint(round(12))#floatprint(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 =5print(round(3.775, 2))# when last_digit+1 is >=5print(round(3.776, 2))# when if last_digit+1 is <5print(round(3.773, 2))
输入:
3.77
3.78
3.77
持续本文无关Python中的舍入函数的文章。
理论利用:
四舍五入函数的一些利用是将数字四舍五入为无限的数字,例如,如果要将小数示意为小数,咱们通常也将小数点后的数字设为2或3,以便能够准确地示意小数。
b=2/6print(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 npnp.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 npnp.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 pdimport numpy as npnp.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 pdimport numpy as npnp.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内核中实现它。咱们还介绍了舍入函数的一些毛病,以及如何纠正它们以及如何在数据迷信中宽泛应用的库中发挥作用。
点击关注,第一工夫理解华为云陈腐技术~