量化自学-金融理论与python-NetPresentValue净现值
- 手机
- 2025-08-29 05:27:02

净现值(Net Present Value,NPV)是金融理论中用于评估投资项目价值的指标。其核心思想是将未来现金流按一定贴现率折算为当前价值,并减去初始投资成本。若NPV为正,表明项目预期收益高于成本,具有投资价值;反之则可能不值得投资。
NPV公式其中:
(C_t) 是第 (t) 期的现金流(初始投资 (C_0) 通常为负值)。(r) 是贴现率。(t) 是时间周期。 Python实现方法 方法1:纯Python实现通过遍历现金流列表,逐项计算现值并累加。
def calculate_npv(rate, cash_flows): npv = 0.0 for t, cf in enumerate(cash_flows): npv += cf / (1 + rate)**t return npv # 示例 cash_flows = [-100, 50, 60, 70] # 初始投资-100,后续三年现金流 discount_rate = 0.1 # 贴现率10% result = calculate_npv(discount_rate, cash_flows) print(f"NPV: {result:.2f}") # 输出: NPV: 47.63 方法2:使用NumPy库NumPy提供npv函数,但需注意其假设现金流从 (t=1) 开始,因此需单独处理初始投资。
import numpy as np cash_flows = [-100, 50, 60, 70] discount_rate = 0.1 # numpy.npv的现金流从t=1开始,需手动加上t=0的现金流 npv_numpy = cash_flows[0] + np.npv(discount_rate, cash_flows[1:]) print(f"NPV (NumPy): {npv_numpy:.2f}") # 输出: NPV (NumPy): 47.63 注意事项 时间对齐:确保现金流列表的第一个元素对应 (t=0)(即初始投资)。贴现率范围:贴现率应大于-1(避免分母为零或负数)。结果解读:NPV > 0 表示项目可行,NPV < 0 则可能拒绝。 示例验证对于现金流 [-100, 50, 60, 70] 和贴现率10%:
计算结果与代码输出一致,验证正确性。
量化自学-金融理论与python-NetPresentValue净现值由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“量化自学-金融理论与python-NetPresentValue净现值”