Compute the number of periodic payments.
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)**nper1) = 0
but if rate = 0 then:
fv + pv + pmt*nper = 0
Examples
If you only had $150/month to pay towards the loan, how long would it take to payoff a loan of $8,000 at 7% annual interest?
>>> print 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]]])