NumPy では、金融・経済・財務系の計算機能を持っています。同様の関数が、Excel にも関数として実装されていますのでそのリンクも記載しています。
将来価値 (Future Value)
numpy.fv()
は、ローンや投資の将来価値を求めます。
Excel には、FV 関数として実装されています。
使い方
1 |
numpy.fv(rate, nper, pmt, pv, when='end') |
引数
- rate (必須): 利率
- nper (必須): 複利計算期間数 (支払回数)
- pmt (必須): 毎回の支払額
- pv (必須): 現在価値 (返済の場合: 借入金額, 貯蓄の場合: 積立済金額)
- when: 支払期日、いつ支払いが行われるか。 (end/0: 各期の期末, start/1: 各期の機種)
利用例
年利 5% で 10 年間、毎月 100 ドル支払い、現在価値=100 ドルにおける将来価値。
1 2 |
>>> np.fv(0.05/12, 10*12, -100, -100) 15692.928894335748 |
現在価値 (Present Value)
numpy.pv()
は、ローンや投資の現在価値を求めます。
Excel には、PV 関数として実装されています。
使い方
1 |
numpy.pv(rate, nper, pmt, fv=0.0, when='end') |
引数
- rate (必須): 利率
- nper (必須): 複利計算期間数 (支払回数)
- pmt (必須): 毎回の支払額
- fv : 将来価値 (返済の場合: 0, 貯蓄の場合: 積立目標額)
- when: 支払期日、いつ支払いが行われるか。 (end/0: 各期の期末, start/1: 各期の機種)
利用例
年利 5% で 10 年間、毎月 100 ドル支払い、15692.93 ドル積み立て目標での現在価値。
1 2 |
>>> np.pv(0.05/12, 10*12, -100, 15692.93) -100.00067131625819 |
正味現在価値 (純現在価値, NPV: Net Present Value)
np.npv()
にて、正味現在価値を算出します。
Excel には、NPV 関数として実装されています。
使い方
1 |
numpy.npv(rate, values) |
引数
- rate (必須): 割引率
- values (必須): 一連のキャッシュフロー額
利用例
割引率 28.1% に対して、100 万円の投資と毎年、39, 59, 55, 20 万円の収益が得られた場合の正味現在価値
1 2 |
>>> np.npv(0.281,[-100, 39, 59, 55, 20]) -0.0084785916384548798 |
利息を考慮したローンの月々の支払額 (元金部分 + 利息部分): PMT
np.pmt()
にて、一定利率のローンの定期支払額を求めます。
Excel には、PMT 関数として実装されています。
使い方
1 |
np.pmt(rate, nper, pv, fv=0, when='end') |
引数
- rate (必須): 利率
- nper (必須): 複利計算期間数 (支払回数)
- pv (必須): 現在価値 (返済の場合: 借入金額, 貯蓄の場合: 積立済金額)
- fv : 将来価値 (返済の場合: 0, 貯蓄の場合: 積立目標額)
- when: 支払期日、いつ支払いが行われるか。 (end/0: 各期の期末, start/1: 各期の機種)
使用例
年利 0.8% の利率で 35 年間、3000 万円のローンを支払うのに必要な毎月の費用
1 2 |
>>> np.pmt(0.008/12, 12*35, -3000*10000) 81918.28145364151 |
利息を考慮したローンの月々の支払額 (元金部分のみ) :PPMT
np.ppmt()
にて、一定利率のローンの元金部分のみを求めます。元利均等返済ですので、上記の PMT と合わせて、PMT = PPMT + IMPT となります。
Excel には、PPMT 関数として実装されています。
使い方
1 |
numpy.ppmt(rate, per, nper, pv, fv=0, when='end') |
引数
- rate (必須): 利率
- nper (必須): 複利計算期間数 (支払回数)
- per (必須): 複利計算期間数 (支払回数)
- pv (必須): 現在価値 (返済の場合: 借入金額, 貯蓄の場合: 積立済金額)
- fv : 将来価値 (返済の場合: 0, 貯蓄の場合: 積立目標額)
- when: 支払期日、いつ支払いが行われるか。 (end/0: 各期の期末, start/1: 各期の機種)
使用例
年利 0.8% の利率で 35 年間、3000 万円のローンを支払うのに必要な毎月の費用の元本部分 (12, 24, 36, 48 か月目)
1 2 |
>>> np.ppmt(0.008/12, [12, 24, 36, 48] , 12*35, -3000*10000) array([ 62373.86544012, 62874.69006898, 63379.53601843, 63888.43557724]) |
利子を考慮したローンの月々の支払額 (利息部分のみ): IPMT
np.ipmt()
にて、一定利率のローンの定期支払額の利息部分のみを求めます。
Excel には、IPMT 関数として実装されています。
使い方
1 |
numpy.ipmt(rate, per, nper, pv, fv=0, when='end') |
引数
- rate (必須): 利率
- nper (必須): 複利計算期間数 (支払回数)
- pv (必須): 現在価値 (返済の場合: 借入金額, 貯蓄の場合: 積立済金額)
- fv : 将来価値 (返済の場合: 0, 貯蓄の場合: 積立目標額)
- when: 支払期日、いつ支払いが行われるか。 (end/0: 各期の期末, start/1: 各期の機種)
使用例
年利 0.8% の利率で 35 年間、3000 万円のローンを支払うのに必要な毎月の費用の利息部分 (12, 24, 36, 48 か月目)
1 2 |
>>> np.ipmt(0.008/12, [12, 24, 36, 48] , 12*35, -3000*10000) array([ 19544.41601353, 19043.59138466, 18538.74543522, 18029.8458764 ]) |
内部利益率 (IRR: Internal Rate of Return)
一連の定期的なキャッシュフローに対する内部収益率を返す関数として、np.irr()
があります。現在価値を0とし、定期的なキャッシュフローの複利を平均化した利益率を返します。
Excel には、IRR 関数として実装されています。
使い方
1 |
numpy.irr(values) |
引数
- values (必須): 毎回のキャッシュフローの額。正 (引き出しの場合) または負 (積み立ての場合) の 1 つ以上の値を指定します。
使用例
ある人が 100 万円投資し、1 年後の収益が 39 万円、2 年後の収益が 59万円、3 年後の収益が 55万円、4 年後の収益が 20万円の収益があった場合の 4 年後の内部利益率
1 2 |
>>> round(np.irr([-100, 39, 59, 55, 20]), 5) 0.28095 |
修正内部利益率 (MIRR: Internal Rate of Return)
一連の定期的なキャッシュフローに対する修正内部収益率を返す関数として、np.mirr()
があります。np.irr()
との違いは、投資原価と、現金の再投資に対する受取利率の両方を考慮する点です。
Excel には、MIRR 関数として実装されています。
使い方
1 |
numpy.mirr(values, finance_rate, reinvest_rate) |
引数
- values (必須): キャッシュフローの額。(正または負の 1 つ以上の値)
- finance_rate (必須): キャッシュフローによって支払われる利息の利率
- reinvest_rate (必須): 再投資によって受け取るキャッシュフローの利率
ローンの支払回数 (NPER: Number of Periodic Payments)
利率や支払額から、利率が一定であると仮定して、必要なローンの支払回数を算出するには、np.nper()
があります。なお、積立貯蓄の払い込みに必要な期間も算出可能です。
Excel には NPER 関数 として実装されています。
使い方
1 |
numpy.nper(rate, pmt, pv, fv=0, when='end') |
引数
- rate (必須): 利率
- pmt (必須): 毎回の支払額
- pv (必須): 現在価値 (返済の場合: 借入金額, 貯蓄の場合: 積立済金額)
- fv: 将来価値 (返済の場合: 0, 貯蓄の場合: 積立目標額)
- when: 支払期日、いつ支払いが行われるか。 (end/0: 各期の期末, start/1: 各期の機種)
元利均等の利率 (RATE)
np.rate()
関数にて、利率の計算をおなうことができます。
Excel には、RATE 関数として実装されています。
使い方
1 |
numpy.rate(nper, pmt, pv, fv, when='end', guess=0.1, tol=1e-06, maxiter=100) |
引数
- nper (必須): 支払回数
- pmt (必須): 毎回の支払額
- pv (必須): 現在価値 (返済の場合: 借入金額, 貯蓄の場合: 積立済金額)
- fv (必須): 将来価値 (返済の場合: 0, 貯蓄の場合: 積立目標額)
- when: 支払期日、いつ支払いが行われるか。 (end/0: 各期の期末, start/1: 各期の機種)
- guess: 利率がおよそどれくらいになるかを推定した値を指定。
- tol: 利率推定の許容値
- maxiter: 反復計算の最大試行回数
参考・出典:Financial functions — NumPy v1.10 Manual