预测GDP应用:Numpy 线性回归+Matplotlib 作图
需求
通过2000~2019年中美两国的GDP数据,预测后续几年GDP的发展趋势:
- 读取.csv文件,并将字符串调整为浮点型
- 进行二阶线性回归模拟
- 支持数据可视化
保命声明:用线性回归预测GDP发展并不合理,只是作为python学习参考。
如果想要了解更有意义的GDP对比可以参考b站翟老师的:https://b23.tv/6aYFVf
成品效果
原数据格式
.csv 文件(“testgdp.csv”),gdp数据每千位均被 “,” 隔开
需求拆解
1、csv文件读取
以测试文件"testgdp.csv"为例,目标将csv数据读取成适合进行线性回归的格式ndarray
方法一:pandas的 read_csv()
函数
import pandas as pd
import numpy as np
data = pd.read_csv("testgdp.csv")
df = pd.DataFrame(data)
print(df.head())
years = np.array(df.years) #可以转化为 ndarray
years
方法二: python自带的 open()
函数
import csv
import numpy as np
data_list = []
with open("testgdp.csv",encoding = 'utf-8') as csvfile:
csv_reader = csv.reader(csvfile)
for row in csv_reader:
data_list.append(row[0:3])#第3~7列为空数据,需要排除
data1 = np.array(data_list)
data2 = np.delete(data1,-1,axis=0)#删除最后一行空值行,axis=1时可删除列
data2
2、对“xxx,xxx,xxx”格式字符串转化为数字
split():用指定分隔符对 字符串 进行切片,变为 list
strr.split (str="", num=string.count(str))
- strr 为原字符串
- str 为分隔符号
- num – 分割次数。默认为 -1, 即分隔所有
def intt(list,exc_rate=1):#将"xxx,xxx,xxx,xxx,xxx"格式的str转化为 整型,exc_rate为汇率
list_new = []
for strr in list:
int_list = strr.split(',') # 分割str,转化为列表
lenth = len(int_list)
result = 0
for n in range(lenth):
ii = int(int_list[n])
result = resu