numpy、scipy、pandas、matplotlib解决实际问题(python)
天天向上
假设初始个人能力值为 1,以一年 365 天为周期:
- 每天坚持进步 1%,计算每日能力变化;
- 每天退步 1%,计算每日能力变化;
- 隔天进步 1%,计算每日能力变化。
代码
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
base = 1.0
days = 365
up_rate = 0.01
down_rate = 0.01
progress_up = base * np.power(1 + up_rate, np.arange(days))
progress_down = base * np.power(1 - down_rate, np.arange(days))
progress_mid = base * np.power(1 + up_rate, np.arange(days) // 2)
df = pd.DataFrame({
"天数": np.arange(days),
"每天进步1%": progress_up,
"每天退步1%": progress_down,
"隔天进步1%": progress_mid
})
print("第365天的结果对比:")
print(df.iloc[-1, 1:])
plt.figure(figsize=(10, 6))
plt.plot(df["天数"], df["每天进步1%"], label="每天进步1%", color="red")
plt.plot(df["天数"], df["每天退步1%"], label="每天退步1%", color="blue")
plt.plot(df["天数"], df["隔天进步1%"], label="隔天进步1%", color="green")
plt.title("“天天向上”模型:365天的差距", fontsize=14)
plt.xlabel("天数", fontsize=12)
plt.ylabel("水平倍数", fontsize=12)
plt.legend()
plt.grid(alpha=0.3)
plt.savefig("天天向上结果.png", dpi=150)
plt.show()
输出


更多推荐
所有评论(0)