numpy.mirr

numpy.rate

# 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 . 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]]])
```