有np.round、np.rint和np.round,它們都有點偏向偶數值,例如,2.5變成2,3.5變成4。
我想對小數陣列進行四舍五入,這樣四舍五入就會持續進行。例如,任何>=x.5都將是x 1,而 任何小于<x.5的東西都是x。 我可以用這個邏輯來寫代碼,但是有沒有很酷很短的Pythonic方法來做到這一點呢?
例如,np.unique(MyArray)看起來:
[0. 0.08333334 0。 125 0.16666667 0.25 0.33333334[/span
0.375 0.41666666 0. 5 0.58333331 0.625 0.6666690.75 0.83333331 0. 875 0.91666669 1. 1.08333337[/span
1.125 1.16666663 1。 25 1.33333337 1.375 1.416666631.5 1.58333337 1。 625 1.666663 1.75 1.83333371.875 1.91666663 2。 2.08333325 2.125 2.16666675[/span
2.25 2.33333325 2. 375 2.41666675 2.5 2.583333252.625 2.66666675 2. 75 2.83333325 2.875 2.91666675 3. 3.08333325 3。 125 3.16666675 3.25 3.333333253.375 3.41666675 3。 5 3.58333325 3.625 3.66666753.75 3.83333325 3。 875 3.91666675 4. 4.083333494.125 4.16666651 4. 25 4.33333349 4.375 4.41666651[/span
4.5 4.58333349 4. 625 4.666651 4.75 4.83333494.875 4.91666651 5。 5.08333349 5.125 5.16666651[/span
5.25 5.33333349 5. 375 5.41666651 5.5 5.583333495.625 5.666651 5. 75 5.83333349 5.875 5.91666651 6. 6.125 6. 25 6.33333349 6.375 6.
6.625 6.75 6. 83333349 6.875 7. 7.166666517.25 7.33333349 7. 375 7.58333349 7.666651 8. ]
uj5u.com熱心網友回復:
IIUC,你可以使用np.where:
m = np.linspace(1, 10, 13)
a = np.where(m - m.astype(int) >= 0.5, np.ceil(m), np.floor(m))
輸出:
>>> m
array([ 1. , 1.75, 2.5 , 3.25, 4。 , 4.75, 5.5, 6.25, 7.。
7.75, 8.5 , 9.25, 10. ])
>>> a
array([ 1., 2., 3., 3. , 4., 5., 6. , 6., 7., 8。 , 9., 9., 10.] )
uj5u.com熱心網友回復:
@banikr, 我認為你可以使用round內置函式。
在這里你可以讀到它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/307307.html
標籤:
