用法:
numpy.ipmt(rate, per, nper, pv, fv=0, when='end')
计算付款的利息部分。
参数: - rate: : scalar 或 array_like of shape(M, )
每个周期的利率为小数点(非百分比)
- per: : scalar 或 array_like of shape(M, )
借贷所支付的利息在存续期间或贷款中发生变化。 per是计算利息数量的还款期。
- nper: : scalar 或 array_like of shape(M, )
复利期数
- pv: : scalar 或 array_like of shape(M, )
目前的价值
- fv: : scalar 或 array_like of shape(M, ), 可选参数
未来价值
- when: : {{‘begin’, 1}, {‘end’, 0}}, {string, int}, 可选参数
付款到期时(‘begin’(1)或‘end’(0))。默认为{‘end’,0}。
返回值: - out: : ndarray
付款的利息部分。如果所有输入均为标量,则返回标量浮点数。如果任何输入类似于数组,则返回每个输入元素的利息支付。如果多个输入类似于array_,则它们都必须具有相同的形状。
注意:
总付款额包括本金加上利息。
pmt = ppmt + ipmt
例子:
一笔$2500的1年期贷款(按每年8.24%的利率,每月复利)的摊销时间表是什么?
>>> principal = 2500.00
‘per’变量表示贷款的期限。请记住,财务方程式从1开始计算周期!
>>> per = np.arange(1*12) + 1 >>> ipmt = np.ipmt(0.0824/12, per, 1*12, principal) >>> ppmt = np.ppmt(0.0824/12, per, 1*12, principal)
‘ipmt’和‘ppmt’数组之和的每个元素应等于‘pmt’。
>>> pmt = np.pmt(0.0824/12, 1*12, principal) >>> np.allclose(ipmt + ppmt, pmt) True
>>> fmt = '{0:2d} {1:8.2f} {2:8.2f} {3:8.2f}' >>> for payment in per: ... index = payment - 1 ... principal = principal + ppmt[index] ... print(fmt.format(payment, ppmt[index], ipmt[index], principal)) 1 -200.58 -17.17 2299.42 2 -201.96 -15.79 2097.46 3 -203.35 -14.40 1894.11 4 -204.74 -13.01 1689.37 5 -206.15 -11.60 1483.22 6 -207.56 -10.18 1275.66 7 -208.99 -8.76 1066.67 8 -210.42 -7.32 856.25 9 -211.87 -5.88 644.38 10 -213.32 -4.42 431.05 11 -214.79 -2.96 216.26 12 -216.26 -1.49 -0.00
>>> interestpd = np.sum(ipmt) >>> np.round(interestpd, 2) -112.98
源码:
numpy.ipmt的API实现见:[源代码]
注:本文由纯净天空筛选整理自 numpy.ipmt。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。