Movatterモバイル変換


[0]ホーム

URL:


SciPy

numpy.ipmt

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

Compute the interest portion of a payment.

Parameters:
rate:scalar or array_like of shape(M, )

Rate of interest as decimal (not per cent) per period

per:scalar or array_like of shape(M, )

Interest paid against the loan changes during the life or the loan.Theper is the payment period to calculate the interest amount.

nper:scalar or array_like of shape(M, )

Number of compounding periods

pv:scalar or array_like of shape(M, )

Present value

fv:scalar or array_like of shape(M, ), optional

Future value

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

When payments are due (‘begin’ (1) or ‘end’ (0)).Defaults to {‘end’, 0}.

Returns:
out:ndarray

Interest portion of payment. If all input is scalar, returns a scalarfloat. If any input is array_like, returns interest payment for eachinput element. If multiple inputs are array_like, they all must havethe same shape.

See also

ppmt,pmt,pv

Notes

The total payment is made up of payment against principal plus interest.

pmt=ppmt+ipmt

Examples

What is the amortization schedule for a 1 year loan of $2500 at8.24% interest per year compounded monthly?

>>>principal=2500.00

The ‘per’ variable represents the periods of the loan. Remember thatfinancial equations start the period count at 1!

>>>per=np.arange(1*12)+1>>>ipmt=np.ipmt(0.0824/12,per,1*12,principal)>>>ppmt=np.ppmt(0.0824/12,per,1*12,principal)

Each element of the sum of the ‘ipmt’ and ‘ppmt’ arrays should equal‘pmt’.

>>>pmt=np.pmt(0.0824/12,1*12,principal)>>>np.allclose(ipmt+ppmt,pmt)True
>>>fmt='{0:2d}{1:8.2f}{2:8.2f}{3:8.2f}'>>>forpaymentinper:...index=payment-1...principal=principal+ppmt[index]...print(fmt.format(payment,ppmt[index],ipmt[index],principal)) 1  -200.58   -17.17  2299.42 2  -201.96   -15.79  2097.46 3  -203.35   -14.40  1894.11 4  -204.74   -13.01  1689.37 5  -206.15   -11.60  1483.22 6  -207.56   -10.18  1275.66 7  -208.99    -8.76  1066.67 8  -210.42    -7.32   856.25 9  -211.87    -5.88   644.3810  -213.32    -4.42   431.0511  -214.79    -2.96   216.2612  -216.26    -1.49    -0.00
>>>interestpd=np.sum(ipmt)>>>np.round(interestpd,2)-112.98

Previous topic

numpy.ppmt

Next topic

numpy.irr

Quick search

  • © Copyright 2008-2018, The SciPy community.
  • Last updated on Jul 24, 2018.
  • Created usingSphinx 1.6.6.

[8]ページ先頭

©2009-2025 Movatter.jp