• Python数据处理(四舍五入、除法部分)


        最近在改造之前的代码的过程中发现一直使用的除法都是“传统除法”,即对整数进行操作,结果的精度不准,正巧在看python核心编程,碰到这块,整理下。

    关于除法

    • 传统除法

            对两个整数进行除的运算,同时结果会舍去小数部分,返回一个整数。但如果操作数之一是浮点型,则执行真正的除法。

    • 真正的除法

             返回真实的商,不管操作数的类似是整数还是浮点数

             需要执行如下指令将传统除法转换为真正的除法

    from __future__  import division
    
    • 地板除

             不管操作数为何种数值类型,总是舍去小数部分,返回数字序列中比真正的商小的最接近的数字,操作符“//”

     举例:

    >>> print "5/3传统除法:",5/3
    5/3传统除法: 1
    >>> from __future__  import division
    >>> print "5/3真正的除法:",5/3
    5/3真正的除法: 1.66666666667
    >>> print "5/3地板除:",5.0//3
    5/3地板除: 1.0
    

      

    关于取整

          常用的直接就是int(),但会发现是直接把小数部分去掉了的整数,有的时候不是我们要的,学习了下int,floor,round的区别

    • int() 直接截去小数部分(返回值为整型)
    • floor()得到的是最接近原数但小于原数的整型(返回值为浮点型)  
    • round()得到最接近原数的整型(返回值为浮点型)

    举例:

        

    >>> import math
    >>> int(3.67)
    3
    >>> math.floor(3.67)
    3.0
    >>> round(3.67)
    4.0
    

      

    如上只是针对python2.X版本的情况,python3.X版本已经有了变化。

    如下为python3.3版本的对应变化

    关于除法

    •  传统除法

              python3.3版本中的传统除法就是真正的除法,不管除数和被除数是否为整数,结果都是真实的商。

    •   地板除

              python3.3版本中保留了地板除。

    举例:

    >>> print ("传统除法:",1/2)
    传统除法: 0.5
    >>> print ("地板除:",1//2)
    地板除: 0
    

     关于取整

    python3.3中的int()和floor()、round()的运算方式没变动,只是最终的返回结果都是整型

    举例:

    >>> int(1.9)
    1
    >>> import math
    >>> math.floor(1.2)
    1
    >>> type(math.floor(1.2))
    <class 'int'>
    >>> round(1.6)
    2
    >>> type(round(1.6))
    <class 'int'>
    

      

  • 相关阅读:
    Java的接口及实例
    卷积函数的参数为Conv2d(in_channels, out_channels, kernel_size, stride, padding, ...),一般关心这5个参数即可
    torch.randn和torch.rand的区别
    Pytorch 里 nn.AdaptiveAvgPool2d(output_size) 原理是什么?
    Python中*args、**args到底是什么、有啥区别、怎么用
    padding输入值是tuple数组,其含义是
    矩阵/图像边长经过卷积操作后的尺寸计算方法:
    CIFAR-10 数据集
    vgg code
    Epoch、Iteration、Batchsize
  • 原文地址:https://www.cnblogs.com/junyiningyuan/p/5338378.html
Copyright © 2020-2023  润新知