numpy金融函数

计算终值

import numpy as np
import matplotlib.pyplot as plt

# 以利率3%, 每季度支付金额10, 存款周期5年, 现值1000为参数, 计算终值
print(np.fv(0.03/4, 5 * 4, -10, -1000))
# 1376.09633204
# 相当于利率3%的5年存款并且每季度额外存入10个单位的资金
fvals = [] for i in range(1, 10): fvals.append(np.fv(.03/4, i * 4, -10, -1000)) plt.plot(fvals, 'bo') plt.show()

# 终值的逆运算
print(np.pv(0.03/4, 5 * 4, -10, 1376.09633204
# -999.999999999

计算净现值

import numpy as np

# 生成5个随机数作为现金流的取值, 输入的参数为终值, 输出为现值
cashflows = np.random.randint(100, size=5)
cashflows = np.insert(cashflows, 0, -100)
print(cashflows)
# [-100   11   92    2   93   36]
# 投入100 一期取出11 二期取出92 三期取出2 四期取出93 五期去除36 五期取完 问现在还需要投入多少

print(np.npv(0.03, cashflows))
# 112.911930303

计算内部收益率

import numpy as np

# 投入100 一期取出38 二期取出48 三期取出90 四期取出17 五期取出36
# 问要多大的利率才能支撑这种取出
print(np.irr([-100, 38, 48, 90, 17, 36])) # 0.3734202268880209

计算分期付款

import numpy as np

# 假设贷款1000000, 年利率10%, 30年还完, 问每月支付多少钱
print(np.pmt(0.10/12, 12 * 30, 1000000))
# -8775.71570089

计算分期付款期数

import numpy as np

# 贷款900, 年利率10%, 每月还款100
# 问要还几个月
print(np.nper(0.10/12, -100, 9000))
# 167.047511801

计算利率

import numpy as np

# 一共付167期, 每期付款100, 贷款9000, 终值为0
# 问贷款利率
print(12 * np.rate(167, -100, 9000, 0))
# 0.0999756420664
原文地址:https://www.cnblogs.com/draven123/p/11427097.html