计算终值
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
![](https://img2018.cnblogs.com/blog/1538512/201908/1538512-20190828223841936-370562777.png)
计算净现值
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