假设有这样一个需求(不是假设,是真的):
    给出历年的预算费用,求增长率。
    为方便后续计算,用matrix矩阵实现。

    # 历史数据
    his=matrix([[30000., 20000., 10000.,  1000.],
            [    0.,     0.,     0.,  9000.],
            [    0.,     0., 10000.,     0.],
            [    0., 10000., 10000.,  1000.],
            [    0.,     0.,     0.,  9000.]])
    
    # 假装是现在的数据
    cur=his*1.24
    
    rate = (cur-his)/his*100
    

    不出意外,这个代码会报:
    RuntimeWarning: invalid value encountered in true_divide
    """Entry point for launching an IPython kernel.

    遇到问题解决问题,解决方法有很多。
    法1:
    忽略warn

    np.seterr(divide='ignore',invalid='ignore')
    

    法2:
    具体问题具体分析,这里是预算。没有倒贴钱的情况,过去为0的意思是过去没有这项,现在为0是现在不需要了。

    cur[cur==0]=nan
    

    结果:

    (cur-his)/his*100
    
    matrix([[24., 24., 24., 24.],
            [nan, nan, nan, 24.],
            [nan, nan, 24., nan],
            [nan, 24., 24., 24.],
            [nan, nan, nan, 24.]])