首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >截断小数位浮点数的numpy数组

截断小数位浮点数的numpy数组
EN

Stack Overflow用户
提问于 2017-02-03 18:23:32
回答 2查看 36K关注 0票数 20

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

2.34341232 --> 2.34 

我读了truncate floating point的帖子,但它是一个浮点数。我不想在numpy数组上运行循环,这将是非常昂贵的。numpy中有没有内置的方法可以很容易地做到这一点呢?我确实需要一个浮点型的输出,而不是字符串。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-03 13:39:59

试试这个修改过的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(vec, decs=2)

它返回:

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

Stack Overflow用户

发布于 2017-02-03 18:53:05

使用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])
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42021972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档