numpy.around

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.around.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

numpy.around(a, decimals=0, out=None)[source]

均匀到给定的小数位数。

参数:

a:array_like

输入数据。

小数:int,可选

舍入的小数位数(默认值:0)。如果小数是负数,它指定小数点左边的位置数。

out:ndarray,可选

用于放置结果的替代输出数组。它必须具有与预期输出相同的形状,但如果必要,将输出输出值的类型。有关详细信息,请参见doc.ufuncs(“输出参数”部分)。

返回:

rounded_array:ndarray

a类型相同的数组,包含四舍五入值。除非指定了out,否则将创建一个新的数组。将返回对结果的引用。

复数的实部和虚部分别进行四舍五入。舍入浮点的结果是浮点数。

也可以看看

ndarray.round
等效法

ceilfixfloorrinttrunc

笔记

对于精确到十进制值之间一半的值,Numpy舍入到最接近的偶数值。因此1.5和2.5圆到2.0,-0.5和0.5圆到0.0,等等。结果也可能是令人惊讶的,因为在IEEE浮点标准[R9]中的十进制小数的不精确表示以及当以十的幂定标时引入的误差。

参考文献

[R9]12“关于IEEE 754状态的演讲”,William Kahan,http://www.cs .berkeley.edu /〜wkahan / ieee754status / IEEE 754.PDF
[R10]“How unile are Mindless Assessments of Roundoff in Floating-Point Computation?”,William Kahan,http://www.cs.berkeley.edu/~wkahan/Mindless.pdf

例子

>>> np.around([0.37, 1.64])
array([ 0.,  2.])
>>> np.around([0.37, 1.64], decimals=1)
array([ 0.4,  1.6])
>>> np.around([.5, 1.5, 2.5, 3.5, 4.5]) # rounds to nearest even value
array([ 0.,  2.,  2.,  4.,  4.])
>>> np.around([1,2,3,11], decimals=1) # ndarray of ints is returned
array([ 1,  2,  3, 11])
>>> np.around([1,2,3,11], decimals=-1)
array([ 0,  0,  0, 10])