numpy.nper
-
numpy.nper(rate, pmt, pv, fv=0, when='end')
[source] -
Compute the number of periodic payments.
Deprecated since version 1.18:
nper
is deprecated; for details, see NEP 32 [1]. Use the corresponding function in the numpy-financial library, https://pypi.org/project/numpy-financial.decimal.Decimal
type is not supported.- Parameters
-
-
ratearray_like
-
Rate of interest (per period)
-
pmtarray_like
-
Payment
-
pvarray_like
-
Present value
-
fvarray_like, optional
-
Future value
-
when{{‘begin’, 1}, {‘end’, 0}}, {string, int}, optional
-
When payments are due (‘begin’ (1) or ‘end’ (0))
-
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
but if
rate = 0
then:fv + pv + pmt*nper = 0
References
-
1
-
NumPy Enhancement Proposal (NEP) 32, https://numpy.org/neps/nep-0032-remove-financial-functions.html
Examples
If you only had $150/month to pay towards the loan, how long would it take to pay-off a loan of $8,000 at 7% annual interest?
>>> print(np.round(np.nper(0.07/12, -150, 8000), 5)) 64.07335
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.07/12: 0.08/12: 0.01/12, ... -150 : -99 : 50 , ... 8000 : 9001 : 1000])) array([[[ 64.07334877, 74.06368256], [108.07548412, 127.99022654]], [[ 66.12443902, 76.87897353], [114.70165583, 137.90124779]]])
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.nper.html