如何获取 numpy(或其他库)中的年度复合回报列表?

问题描述 投票:0回答:3

从 1000 美元开始。

投资10年,每年复利。

包含年度回报的回报表,格式如下 $xxx,xxx.00

最好在不编写新实现的情况下解决问题。 Pythonic 和简洁的现有 API 应该是可能的,因为这是地球上最常见的计算之一(可能还有其他行星)。

python numpy finance
3个回答
2
投票

NumPy 中有一系列金融工具:请参阅

np.lib.financial
模块。

在这里,我想你想要

fv
。文档中给出的示例如下:

现在存下 100 美元,每月额外存下 100 美元,10 年后的未来价值是多少。假设利率为 5%(年),每月复利?

>>> np.fv(0.05/12, 10*12, -100, -100)
15692.928894335748`

如果任何输入值是数组,则返回值数组。要计算 10 年的年度余额(与示例相同的假设),您可以编写:

>>> np.fv(0.05/12, np.arange(0, 121, 10), -100, -100)
array([   100.        ,   1123.20552614,   2189.85294226,   3301.78664596,
         4460.92934179,   5669.28536592,   6928.94415193,   8242.08384379,
         9610.97506218,  11037.98483075,  12525.58066907])

这没有您指定的 $xxx,xxx.00 格式,但调整 NumPy 的打印选项以获得令人满意的结果应该很简单。


1
投票

自 Numpy 1.20(2021 年 1 月 30 日)起,financial 函数已被删除,文档现在指向 numpy-financial 库,该库最初是原始 numpy 函数的原始副本。

此替代库托管在 Github 上的 numpy 帐户下,并且 自 2019 年 10 月以来尚未更新

个人建议:如果你不想合并额外的依赖项,只需查看代码并使用它,大多数函数在没有文档的情况下都在 10 LoC 左右。但请注意许可证限制。


0
投票

复利的公式就是:

def compound(present_value, rate, num_periods):
  return present_value * (1 + rate) ** num_periods

如果需要,您可以传递 numpy 数组,例如10年后的年余额,年利率为3%,从$1000开始:

>>> compound(1000.0, rate=0.03, num_periods=np.arange(11))
array([1000.        , 1030.        , 1060.9       , 1092.727     ,
       1125.50881   , 1159.2740743 , 1194.05229653, 1229.87386542,
       1266.77008139, 1304.77318383, 1343.91637934])
© www.soinside.com 2019 - 2024. All rights reserved.