摘要:在本文中,介紹了什么是round函數以及如何從python內核中實現它。同時,還介紹舍入函數的一些缺點,以及如何糾正它們,如何在數據科學中廣泛使用的庫中發揮作用。
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內核中實現它。我們還介紹了舍入函數的一些缺點,以及如何糾正它們以及如何在數據科學中廣泛使用的庫中發揮作用。
本文分享自華為雲社區《從零開始學python | 如何在Python中實現Round函數?》,原文作者:Yuchuan 。