python - 截断十进制数字 numpy float 组

标签 python numpy vectorization

我想截断 numpy 数组中的浮点值,例如

2.34341232 --> 2.34 

我读了帖子 truncate floating point但它是一个漂浮物。我不想在 numpy 数组上运行循环,它会非常昂贵。 numpy 中是否有任何内置方法可以轻松做到这一点?我确实需要输出为 float 而不是字符串。

最佳答案

试用 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])

关于python - 截断十进制数字 numpy float 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42021972/

相关文章:

python - 不能在 python 类中使用 iadd

python - 如何计算对话中每个角色所说的单词数并将计数存储在字典中?

python - 从 Windows 浏览器访问 localhost

python - 根据另一个数组中列的位置对 numpy 数组进行分组和求和

python - 替换 pandas DataFrame 中的越界(复杂)值

c - PADDD 指令的操作数

python - 如何用逗号连接 Pandas 数据框的两列?

python - 这是在 DataFrame 中设置值的安全方法吗?为什么这有效?

python - 使这个 C 数组处理代码更像 python(甚至是 numpy)

matlab - 构造一个二进制矩阵,使得每列仅包含单个 "1"并且每行的总和为所需值