NumPy

Previous topic

numpy.npv

Next topic

numpy.ppmt

This is documentation for an old release of NumPy (version 1.18). Read this page in the documentation of the latest stable release (version 2.2).

numpy.pmt

numpy.pmt(rate, nper, pv, fv=0, when='end')[source]

Compute the payment against loan principal plus interest.

Deprecated since version 1.18: pmt is deprecated; for details, see NEP 32 [1]. Use the corresponding function in the numpy-financial library, https://pypi.org/project/numpy-financial.

Given:
  • a present value, pv (e.g., an amount borrowed)

  • a future value, fv (e.g., 0)

  • an interest rate compounded once per period, of which there are

  • nper total

  • and (optional) specification of whether payment is made at the beginning (when = {‘begin’, 1}) or the end (when = {‘end’, 0}) of each period

Return:

the (fixed) periodic payment.

Parameters
ratearray_like

Rate of interest (per period)

nperarray_like

Number of compounding periods

pvarray_like

Present value

fvarray_like, optional

Future value (default = 0)

when{{‘begin’, 1}, {‘end’, 0}}, {string, int}

When payments are due (‘begin’ (1) or ‘end’ (0))

Returns
outndarray

Payment against loan plus interest. If all input is scalar, returns a scalar float. If any input is array_like, returns payment for each input element. If multiple inputs are array_like, they all must have the same shape.

Notes

The payment 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

for pmt.

Note that computing a monthly mortgage payment is only one use for this function. For example, pmt returns the periodic deposit one must make to achieve a specified future balance given an initial deposit, a fixed, periodically compounded interest rate, and the total number of periods.

References

1

NumPy Enhancement Proposal (NEP) 32, https://numpy.org/neps/nep-0032-remove-financial-functions.html

2

Wheeler, D. A., E. Rathke, and R. Weir (Eds.) (2009, May). Open Document Format for Office Applications (OpenDocument)v1.2, Part 2: Recalculated Formula (OpenFormula) Format - Annotated Version, Pre-Draft 12. Organization for the Advancement of Structured Information Standards (OASIS). Billerica, MA, USA. [ODT Document]. Available: http://www.oasis-open.org/committees/documents.php ?wg_abbrev=office-formulaOpenDocument-formula-20090508.odt

Examples

What is the monthly payment needed to pay off a $200,000 loan in 15 years at an annual interest rate of 7.5%?

>>>
>>> np.pmt(0.075/12, 12*15, 200000)
-1854.0247200054619

In order to pay-off (i.e., have a future-value of 0) the $200,000 obtained today, a monthly payment of $1,854.02 would be required. Note that this example illustrates usage of fv having a default value of 0.