如何使用numpy.repeat构建一个数组,其中每个元素比前一个元素高1%?



我的初始值是薪水=500。我希望它每年增加 1%,这样我的数组就会看起来像[500,550,605,665.5]等。基本上是1.1乘以每个先前的值。

我为此使用了一个循环,但很好奇是否可以以某种方式使用numpy.arangenumpy.repeat来完成?

salary=500
for i in range(0,15,1):
salary=1.1*salary
print(salary)

使用1.1作为基础来创建指数数组并使用起始值对其进行缩放 -

In [52]: 500*(1.1**np.arange(4)) # 4 is number of output elements
Out[52]: array([500. , 550. , 605. , 665.5])

您可以使用cumprod来计算随时间推移的增加:

inc = np.full(15,1.1).cumprod()

这会将 1.1 数组中的每个元素乘以前一个值并累加。然后计算您的salary

salary = 500*inc

百分之一是 0.01 ((1/100(*1( 而不是 0.1

# 1% is 0.01 not 0.1(10%) 
salary=500
years=input("How many years shall pass?")
print(salary)
for i in range (1,int(years)):
salary=(salary/100)*101
print(int(salary))

这是你的意思吗? 您也可以为数组创建一个列表(.append(,尽管对于这种类型的程序,我会使用 fortran。虽然我不知道你这样做的目的是什么。

相关内容

最新更新