上一个主题

numpy.ppmt

下一个主题

numpy.irr

numpy.ipmt

numpy.ipmt(rate, per, nper, pv, fv=0, when='end')[源代码]

计算付款的利息部分。

参数:
rate : 形状的标量或数组(m,)

利率以小数(不是百分比)表示的期间

per : 形状的标量或数组(m,)

生活或贷款期间贷款变动支付的利息。这个 per 是计算利息金额的付款期间。

nper : 形状的标量或数组(m,)

复利期数

pv : 形状的标量或数组(m,)

现值

fv : 标量或类似数组的形状(m,),可选

未来价值

when : '开始',1,'结束',0,字符串,int,可选

付款到期时(“开始”(1)或“结束”(0))。默认为'结束',0。

返回:
out : 恩达雷

付款的利息部分。如果所有输入都是标量,则返回一个标量浮点。如果任何输入类似于数组,则返回每个输入元素的利息支付。如果多个输入是类似数组的,那么它们都必须具有相同的形状。

参见

ppmt, pmt, pv

笔记

全部款项由本金加利息支付。

pmt = ppmt + ipmt

实例

一年期贷款2500美元,年利率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