社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何让python中的函数在两个列表(每个列表都有自己的x,y)之间进行插值?

Gordon • 6 年前 • 256 次点击  

我对python比较陌生,有一个复杂而有趣的问题(IMO),我正试图解决,但不知道如何继续。

我有一个数据集,包含三个参数:

  • 年龄(18,20,25,30。。。。最多59步,第5步)
  • 覆盖范围(50k、100k、150k、200k)
  • 保险费(一定年龄和一定保险范围的保险费)

可视化

enter image description here

#Age
Age = ["18","20","25","30","35","40","45","50","55","59"]
#Insurance coverage
Coverage = ["50000","100000","150000","200000"]

#Premiums Data
Cover50k_Annual_Premium = [473.05,501.90,588.45,698.05,842.25,1032.65,1298.05,1696.10,2376.85,3380.65]
Cover100k_Annual_Premium = [946.10,1003.80,1176.90,1396.10,1684.55,2065.30,2596.05,3392.15,4753.65,6761.25]
Cover150k_Annual_Premium = [1419.15,1505.70,1765.30,2094.15,2526.80,3097.95,3894.10,5088.25,7130.50,10141.90]
Cover200k_Annual_Premium = [1892.25,2007.60,2353.75,2792.20,3369.10,4130.60,5192.10,6784.35,9507.30,13522.55 ]

#Matrix
Premiums = np.array([Cover50k_Annual_Premium, Cover100k_Annual_Premium, Cover150k_Annual_Premium, Cover200k_Annual_Premium])

#visualization
plt.plot(Cover50k_Annual_Premium, c='Black', ls= '--', marker='o', label='50k')
plt.plot(Cover100k_Annual_Premium, c='red', ls= '--', marker='o', label='100k')
plt.plot(Cover150k_Annual_Premium, c='blue', ls= '--', marker='o', label='150k')
plt.plot(Cover200k_Annual_Premium, c='green', ls= '--', marker='o', label='200k')

# interpolate between all premiums
# formula: interp = [(i1 + i2)/2.0 for i1, i2 in zip(l1, l2)]
interp_premiums = [(Cover50k_Annual_Premium+Cover100k_Annual_Premium+Cover150k_Annual_Premium+Cover200k_Annual_Premium)/4.0 
          for Cover50k_Annual_Premium, Cover100k_Annual_Premium, Cover150k_Annual_Premium, Cover200k_Annual_Premium 
          in zip(Cover50k_Annual_Premium, Cover100k_Annual_Premium, Cover150k_Annual_Premium, Cover200k_Annual_Premium)]

plt.plot(interp_premiums, c='magenta', ls= '--', marker='o', label='interp')

plt.legend(loc='upper left',bbox_to_anchor=(1,1))
plt.xticks(list(range(0,10)),Age, rotation='vertical')
plt.show()

interp_premiums

# given Age 27, find the Premiums for 50k, 100k, 150k, 200k
# ?????

我试图得到一个人在给定年龄(如27岁)的每个保险范围(50k,100k,150k,200k)的估计保费(内插),但我卡住了。

最后,如果我在所有保险范围内返回一个给定的人的估计保险费列表,以便我也可以在保险范围之间插入(例如,27岁的人的保险费是多少,保险费是125k),那会更好。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49335
文章 [ 1 ]  |  最新文章 6 年前