年龄分布统计表,年龄分布表
Yyds干货库存
2.使用最小二乘法预测贷款金额:给定的训练样本集如下:
解:工资1.8万,年龄30,名额多少?给出代码和运行结果图。
难点在于绘制带两个参数的三维图时引入mpl_toolkits.mplot3d。
最小二乘公式是一样的P=(x tx)-1 x t y,画图的时候分别给x,y,z y,z轴赋值,写坐标标签。因为数据中的小数位太多,超过位数的范围就会报错,所以小数位要改成整数!
将numpy作为np导入
从numpy进口材料
将matplotlib.pyplot作为plt导入
从mpl _ toolkits . mplot 3d import axes 3d #画一个三维图
if __name__==__main__ :
# 1获取x,y数据# # # # # # # #
X=np.array([[4000,25]、[8000,30]、[5000,28]、[7500,33]、[12000,40]])
Y=np.array([20000,70000,35000,50000,85000])
# 2矩阵形式的X,Y变换
Y_mat=mat(Y)。T
X_temp=np.ones((5,3))
X_temp[:0]=X[:0]
X_temp[:1]=X[:1]
#打印(X_temp)
X_mat=mat(X_temp)
#打印(X_mat)
# 3使用分析方法P=(x tx)-1 x t y
pamaters=(((X_mat。T) * X_mat)。I) * X_mat。T * Y _马特
#打印(材料)
# 4显示屏
图1=plt .图()
ax1=Axes3D(图1)
x=X[:0]
y=X[:1]
z=Y
Z=X_mat * pamaters
#打印(Z)
n=list (map (int,z [:0])中的位数# z超出范围。
#打印(n)
ax1.scatter3D(x,y,z,c=blue )
ax1.plot3D(x,y,n,c=red )
Plt.title(贷款额度预测图表)#设置图表标题
Plt.xlabel (salary) #设置X轴标签
Plt.ylabel (age) #设置Y轴标签
Ax1.set_zlabel (limit) #设置z坐标标签。
PLT . rcparams[ font . sans-serif ]=[ Kaiti ]#常用的显示中文(粗体)的字体一般包括:Kaiti-italics;宋芳——仿宋;微软雅黑-微软雅黑
PLT . RC params[ axes . unicode _ MINUS ]=false #用于正常显示负号。
plt.show()
A=eval(输入(请输入薪金:))
B=eval(输入(请输入年龄:))
s=np.array([[a,b]])
打印数量
s_temp=np.ones((1,3))
s_temp[:0]=s[:0]
s_temp[:1]=s[:1]
#打印(临时)
s_mat=mat(s_temp)
m=s_mat * pamaters
打印(贷款金额为:,m)三维散点图和折线图
输入工资和年龄输出贷款金额!
3.统计年龄分布(5岁区间统计),绘制年龄分布图。
data=data.copy()
Data[ age]=[dt.datetime.today()。year-I . year for I in PD . to _ datetime(data[出生日期]]如果不添加data.copy(),会得到一个错误。
SettingWithCopyWarning:试图在数据帧的切片副本上设置值。尝试使用。loc[row_indexer,col_indexer]=值
完整代码:导入熊猫作为pd
将numpy作为np导入
将matplotlib.pyplot作为plt导入
将日期时间作为dt导入
#读取CSV文件以生成数据帧
df=pd.read_csv(D:/luohu3.csv )
打印(df)
Print(df.info()) #获取数据帧的摘要
Print(df.head()) #根据位置返回对象的前N行信息(默认值为5),用于快速测试数据集。
Print(df.describe()) #生成描述性统计,汇总数据集分布的集中趋势、分散程度和形状,不包括NaN值。
#数据预处理
Data=df.dropna(0) #删除所有包含空值的行或列
print(data.info())
# data=df.drop_duplicates()
# print(data.info())
#获取年龄数据
data=data.copy()
Data[ age]=[dt.datetime.today()。year-I . year for I in PD . to _ datetime(data[生日]] #如何处理日期数据
X=数据[年龄]
#设置统计分数段的范围
Print(data.describe()) #检查最大值和最小值
bin=NP . arange(35,65,5)
Time_bins=pd.cut(x,bins) #离散化数据
打印(时间箱)
#根据整数分区间隔进行分组统计。
1=data . group by(time _ bins)[ age ]。计数()
打印(df1)
#绘制图形
df1.plot(kind=bar ,rot=0)
PLT . rcparams[ font . sans-serif ]=[ Kaiti ]#常用的显示中文(粗体)的字体一般包括:Kaiti-italics;宋芳——仿宋;微软雅黑-微软雅黑
PLT . RC params[ axes . unicode _ MINUS ]=False
plt.show()
转载请联系作者获得授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。