美文网首页我爱编程金融python学习
Python数据分析_Numpy中的金融函数

Python数据分析_Numpy中的金融函数

作者: ChZ_CC | 来源:发表于2016-11-14 16:52 被阅读6075次

    numpy中的金融函数一览:

    终值                  fv
    现值                  pv
    净现值                npv
    每期支付金额          pmt
    内部收益率            irr
    修正内部收益率        mirr
    定期付款期数          nper
    利率                  rate
    
    

    终值:fv,计算的是未来的价值。

    numpy.fv(rate, nper, pmt, pv[, when='end'])
    #参数:
    rate:每一期的利率(rate of interest)。数值或矩阵(M, )。
    nper:期数。
    pmt:payment。
    pv:present value,现值。
    when:{{‘begin’, 1}, {‘end’, 0}}, {string, int}, optional. 
        每一期的开头还是结尾付。
        
    # 例子:年利率为5%,存100,然后每个月存100,10年后可以得到多少。【零存】
    >>> np.fv(0.05/12, 10*12, -100, -100)
    15692.928894335748
    
    【负值代表现金流出,比如存到银行后目前就不可用了。】
    
    如果传入的参数是array性质的,那么计算结果也是array。比如比较不同利率的终值。
    >>> a = np.array((0.05, 0.06, 0.07))/12
    >>> np.fv(a, 10*12, -100, -100)
    array([ 15692.92889434,  16569.87435405,  17509.44688102])
    
    

    现值:pv,计算未来金额在现在的价值。

    numpy.pv(rate, nper, pmt, fv=0.0, when='end')
    #参数含义同fv
    
    #例子:年利率5%,每月投入100,需要投入多少本金才可以在10年后的15682.93。
    >>> np.pv(0.05/12, 10*12, -100, 15692.93)
    -100.00067131625819
    

    每期支付金额:pmt

    numpy.pmt(rate, nper, pv[, fv=0, when='end'])
    参数:利率,分期数,现金值。
    
    例子:月付,200,000,15年还清,年利率为7.5%
    
    >>> np.pmt(0.075/12, 12*15, 200000)
    -1854.0247200054619
    
    

    每期支付金额之本金:ppmt

    • numpy.ppmt(rate, per, nper, pv[, fv, when]) Compute the payment against loan principal.
    • per表示目前处在第几个还款期
    • 由于在等额还款方式下虽然每期偿还的总金额(本金+利息)相等,但是各期的本金及利息不相等,随着时间的推移,每期偿还的本金逐渐增加,利息逐渐减少。

    每期支付金额之利息:ipmt

    • numpy.ipmt(rate, per, nper, pv[, fv, when]) Compute the interest portion of a payment.

    • pmt = ppmt + ipmt

    分期数:nper

    numpy.nper(rate, pmt, pv, fv=0, when='end')
    参数:略
    例子:如果你以每月150,年利率为7%,来还清8000的贷款,需要多少期?
    >>> print(round(np.nper(0.07/12, -150, 8000), 5))
    64.07335
    
    同样也可以计算不同利率,做比较。
    

    利率:rate

    numpy.rate(nper, pmt, pv, fv[, when='end', guess=0.1, tol=1e-06, maxiter=100])
    

    以上这些都是当前资金和未来资金的转换。


    净现值:npv(net present value)

    • 净现值是指投资方案所产生的【现金净流量】(流入-流出)以资金成本为贴现率折现之后与原始投资额现值的差额
    • 经济意义
      • NPV>0表示项目实施后,除保证可实现预定的收益率外,尚可获得更高的收益。
      • NPV<0表示项目实施后,未能达到预定的收益率水平,而不能确定项目已亏损。
      • NPV=0表示项目实施后的投资收益率正好达到预期,而不是投资项目盈亏平衡。
    numpy.npv(rate, values)
    参数:
    rate: scalar数值,折现率。
    values: 现金流。正数代表‘收入’或‘取款’,负数代表‘投资’或‘存款’。
            第一个值必须是初始的投资,也就是必须是负数。
    
    公式:
    NPV=Σ(CI-CO)(1+i)^(-t)
    式中:CI——现金流入,CO——现金流出,(CI-CO)——第t年净现金流量,i——基准折现率
    
    >>> np.npv(0.281,[-100, 39, 59, 55, 20])
    -0.0084785916384548798
    

    内部收益率:irr

    numpy.irr(values)返回Internal Rate of Return (IRR).
    参数:
    values: array形式,每一期的现金流。
    
    #用例子来解释:
    一个人投资100,然后按照固定的时间间隔进行取款,[39,59,55,20]。
    假设最终值是0,那么他投资的100,最终产出是173。
    因为阶段性取款,收益率不是简单的做平均。而是用以下公式计算:
    -100 + 39/(1+r) + 59/(1+r)^2 + 55/(1+r)^3 + 20/(1+r)^4 = 0
    
    代码:
    >>> round(np.irr([-100, 39, 59, 55, 20]), 5)
    0.28095
    >>> round(np.irr([-100, 0, 0, 74]), 5)
    -0.0955
    >>> round(np.irr([-100, 100, 0, -7]), 5)
    -0.0833
    

    修正内部收益率: mirr(modified internal rate of return)

    numpy.mirr(values, finance_rate, reinvest_rate)
    
    参数
    values : array_like
        现金流(必须有一个正值和一个负值),第一个值可以看做是沉没成本。
    finance_rate : scalar
        Interest rate paid on the cash flows
    reinvest_rate : scalar
        Interest rate received on the cash flows upon reinvestment
    Returns: float
        Modified internal rate of return
    

    相关文章

      网友评论

        本文标题:Python数据分析_Numpy中的金融函数

        本文链接:https://www.haomeiwen.com/subject/zywhpttx.html