假设有这样一个需求(不是假设,是真的):
给出历年的预算费用,求增长率。
为方便后续计算,用 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.]])
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于