截断十进制数字numpy数组的浮点数

时间:2017-02-03 10:23:32

标签: python numpy vectorization

我想截断numpy数组中的浮点值,对于.e.g。

(apply '+ (org-map-entries (lambda () 1) "/TODO|NEXT")) 

我阅读了帖子Load Testing FTP and SFTP Servers Using JMeter,但是它只用了一个浮点数。我不想在numpy阵列上运行循环,它会非常昂贵。 numpy中是否有任何内置方法可以轻松实现?我确实需要输出为float而不是字符串。

2 个答案:

答案 0 :(得分:4)

试用此numpy.trunc()的修改版本。

import numpy as np
def trunc(values, decs=0):
    return np.trunc(values*10**decs)/(10**decs)

可悲的是,numpy.trunc函数不允许十进制截断。幸运的是,将参数乘以并将其结果除以10的幂可得到预期的结果。

vec = np.array([-4.79, -0.38, -0.001, 0.011, 0.4444, 2.34341232, 6.999])

trunc(values, decs=2)

返回:

>>> array([-4.79, -0.38, -0.  ,  0.01,  0.44,  2.34,  6.99])

答案 1 :(得分:3)

使用numpy.round

import numpy as np
a = np.arange(4) ** np.pi
a
=> array([  0.        ,   1.        ,   8.82497783,  31.5442807 ])
a.round(decimals=2)
=> array([  0.  ,   1.  ,   8.82,  31.54])