Compute the number of periods.
Parameters: | rate : array_like
pmt : array_like
pv : array_like
fv : array_like, optional
when : {{‘begin’, 1}, {‘end’, 0}}, {string, int}, optional
|
---|
Notes
The number of periods nper is computed by solving the equation:
fv + pv*(1+rate)**nper + pmt*(1+rate*when)/rate * ((1+rate)**nper - 1) == 0
or, when rate == 0:
fv + pv + pmt * nper == 0
Examples
If you only had $150 to spend as payment, how long would it take to pay-off a loan of $8,000 at 7% annual interest?
>>> np.nper(0.07/12, -150, 8000)
64.073348770661852
So, over 64 months would be required to pay off the loan.
The same analysis could be done with several different interest rates and/or payments and/or total amounts to produce an entire table.
>>> np.nper(*(np.ogrid[0.06/12:0.071/12:0.01/12, -200:-99:100, 6000:7001:1000]))
array([[[ 32.58497782, 38.57048452],
[ 71.51317802, 86.37179563]],
[[ 33.07413144, 39.26244268],
[ 74.06368256, 90.22989997]]])