先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

讯享网





既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)

正文
本次数据集一共包涵两万余条数据,110个特征。为了便于分析选取其中的11个特征进行分析。
‘user\_id’ 玩家唯一ID ‘avg\_online\_minutes’, 平均在线时长 ‘pvp\_battle\_count’ 与玩家对战次数 ‘pvp\_lanch\_count’ 主动发起与玩家对战的次数 'pvp\_win\_count 与玩家对战获胜的次数 ‘pve\_battle\_count’ 与电脑对战次数 ‘pve\_lanch\_count’, 主动发起与电脑对战的次数 ‘pve\_win\_count’ 与电脑对战获胜次数 user\_id 玩家唯一ID pay\_price 充值金额 pay\_count 充值次数 prediction\_pay\_price 预测充值金额 三、大数据分析技术的应用 1、数据预处理的代码、注释说明及运行结果 1.导入数据集和库 df = pd.read\_csv(’./data/game\_player.csv’,encoding=‘gbk’)  2.对需要的特征进行切片, #切片提取需要的特征,并命名为data data = df[ [ ‘user\_id’, #玩家唯一ID
讯享网
讯享网 'avg_online_minutes', #在线时长 'pvp_battle_count', #与玩家对战次数 'pvp_lanch_count', #主动与玩家对战的次数 'pvp_win_count', #与玩家对战获胜的次数 'pve_battle_count', #与电脑对战次数 'pve_lanch_count', #主动发起与电脑对战的次数 'pve_win_count' #与电脑对战获胜次数 ] ]
Data   3.删除缺失值,并且去重 #删除缺失值 print(‘去除缺失的行前数据集形状为:’, data.shape) data\_1 = data.dropna(axis=0,how=‘any’) print(‘去除缺失的行后数据集形状为:’, data\_1.shape) #如果使用shape会导致data1数组变为str字符串类型 #data1 = data\_1[‘user\_id’].drop\_duplicates() data1 = data\_1.drop\_duplicates() print(‘使用drop\_duplicates方法去重后游戏ID总数:’,len(data1)) 并把处理出的数据集命名为data1  4.三特征的相似度矩阵 #求出与玩家对战次数,主动发起与玩家对战的次数,与玩家对战获胜的次数,三特征的pearson法相似度矩阵 corr\_data1 = data[[‘pvp\_battle\_count’,‘pvp\_lanch\_count’,‘pvp\_win\_count’]].corr(method=‘pearson’) print(‘与玩家对战次数,主动发起与玩家对战的次数,与玩家对战获胜的次数:\n’, corr\_data1)  5.切出需要的新特征,命名为data2  6. 离差标准化 #离差标准化 #自定义离差标准化函数 def min\_max\_scale(data1): data1 = (data1 - data1.min())/ (data1.max()- data1.min()) return data1 #对平均在线时间的离差标准化 time\_min\_max = min\_max\_scale(data1[‘avg\_online\_minutes’]) print(‘离差标准化前在线时间数据为:\n’,data1[‘avg\_online\_minutes’]) print(‘离差标准化后在线时间数据为:\n’,time\_min\_max)  7.内连接,外连接,保存预处理之后的数据集 #对数据1,2进行合并 print(‘外连接合并后的数据框大小’, pd.concat([data1,data2],axis=1,join=‘outer’).shape) #对数据1,2进行合并 print(‘内连接合并后的数据框大小’, pd.concat([data1,data2],axis=1,join=‘inner’).shape) data3 = pd.merge(data1,data2,how=‘inner’,on=‘user\_id’) data3.to\_csv(’./data/吴硕秋8.csv’,sep=’;’,index=False)  二. 数据探索与特征构建 1.玩家活跃度分析 (1)计算全部玩家平均在线时长 avg\_time = data3.avg\_online\_minutes.mean() avg\_time  (2)#计算付费玩家平均在线时长 pay\_avg\_time = data3[data3.pay\_price > 0].avg\_online\_minutes.mean() pay\_avg\_time  #利用等宽离散法记录充值次数分布 pay\_cut = pd.cut(data2[‘pay\_count’],40) print(‘离散化后充值次数分布:\n’,pay\_cut.value\_counts())  (3) 绘制玩家平均在线时间箱线图 绘制全部玩家平均在线时间箱线图 plt.figure(figsize=(10,10)) plt.boxplot(data3.avg\_online\_minutes) plt.rcParams[‘font.sans-serif’]=[‘Microsoft YaHei’] plt.rcParams[‘axes.unicode\_minus’]=False plt.title(‘全部玩家平均在线时间箱线图’) plt.show()  绘制付费玩家平均在线时间箱线图 plt.figure(figsize=(10,10)) plt.boxplot(data3[data3.pay\_price > 0].avg\_online\_minutes) plt.rcParams[‘font.sans-serif’]=[‘Microsoft YaHei’] plt.rcParams[‘axes.unicode\_minus’]=False plt.title(‘付费玩家平均在线时间箱线图’) plt.show()  计算玩过玩家对抗游戏的玩家 pvp\_avg\_time =data3[data3.pvp\_battle\_count > 0].avg\_online\_minutes.mean()  评价 全部玩家的平均在线时长为9.6分钟,付费玩家的平均在线时长是135.8分钟,约是普通玩家的11倍,付费玩家拥有更高的活跃度。 2.玩家付费率分析 (1)获取付费次数超过0的玩家数量  (2)绘制饼图  3.玩家付费情况分析与关联性探索 (1)定义HY, total\_pay, HY\_AVG, HY\_PAY\_COUNT, PAY\_AVG, PAY\_PRO 含义分别为 活跃玩家数量, 总收入, 平均每个活跃玩家的收入, 活跃的付费玩家数量, 平均每个付费玩家的收入, 付费率  (2)活跃玩家与充值金额的关系  该游戏付费率较低,还有进一步提高的空间,可以开展相关活动提高付费率。 该游戏付费玩家人均消费32,说明付费用户整体的消费能力强,后续可以对付费用户进一步分析,已保证它们的持续付费; 4.玩家游戏习惯分析 活跃用户平均PVP次数 HY\_pvp\_battle\_coun = data3[data3.avg\_online\_minutes> 10].pvp\_battle\_count.mean() 活跃用护pvp总次数 HY\_count\_pvp = data3[data3.avg\_online\_minutes> 10].pvp\_battle\_count.sum() 活跃用护pvp发起次数 HY\_count\_lanch\_pvp = data3[data3.avg\_online\_minutes> 10].pvp\_lanch\_count.sum() 活跃用户主动发起PVP概率 HY\_rate\_lanch\_pvp = HY\_count\_lanch\_pvp/HY\_count\_pvp 活跃用户PVP胜利总次数 HY\_num\_win\_pvp = data3[data3.avg\_online\_minutes> 10].pvp\_win\_count.sum() 活跃用户PVP胜利概率 HY\_rate\_win\_pvp = HY\_num\_win\_pvp/HY\_count\_pvp print(f’活跃用户平均PVP次数:{HY\_pvp\_battle\_coun}’) print(f’活跃用户主动发起PVP概率:{HY\_rate\_lanch\_pvp}’) print(f’活跃用户PVP胜利概率:{HY\_rate\_win\_pvp}’)  (2) 活跃用户平均PVE次数 HY\_pve\_battle\_coun = data3[data3.avg\_online\_minutes> 10].pve\_battle\_count.mean() 活跃用护PVE总次数 HY\_count\_pve = data3[data3.avg\_online\_minutes> 10].pve\_battle\_count.sum() 活跃用护PVE发起次数 HY\_count\_lanch\_pve = data3[data3.avg\_online\_minutes> 10].pve\_lanch\_count.sum() 活跃用户主动发起PVE概率 HY\_rate\_lanch\_pve = HY\_count\_lanch\_pve/HY\_count\_pve 活跃用户PVE胜利总次数 HY\_num\_win\_pve = data3[data3.avg\_online\_minutes>=15].pve\_win\_count.sum() 活跃用户PVE胜利概率 HY\_rate\_win\_pve = HY\_num\_win\_pve/HY\_count\_pve print(f’活跃用户平均PVE次数:{HY\_pve\_battle\_coun}’) print(f’活跃用户主动发起PVE概率:{HY\_rate\_lanch\_pve}’) print(f’活跃用户PVE胜利概率:{HY\_rate\_win\_pve}’)  (3) 活跃付费用户平均PVP次数 HY\_PAY\_COUNT\_pvp\_battle\_coun = data3[(data3.avg\_online\_minutes>10) & (data3.pay\_price>0)].pvp\_battle\_count.mean() 活跃付费用护pvp总次数 HY\_PAY\_COUNT\_count\_pvp = data3[(data3.avg\_online\_minutes>10) & (data3.pay\_price>0)].pvp\_battle\_count.sum() 活跃付费用护pvp发起次数 HY\_PAY\_COUNT\_count\_lanch\_pvp = data3[(data3.avg\_online\_minutes>10) & (data3.pay\_price>0)].pvp\_lanch\_count.sum() 活跃付费用户主动发起PVP概率 HY\_PAY\_COUNT\_rate\_lanc\_pvp = HY\_PAY\_COUNT\_count\_lanch\_pvp/HY\_PAY\_COUNT\_count\_pvp 活跃付费用户PVP胜利总次数 HY\_PAY\_COUNT\_num\_win\_pvp = data3[(data3.avg\_online\_minutes>10) & (data3.pay\_price>0)].pvp\_win\_count.sum() 活跃付费用户PVP胜利概率 HY\_PAY\_COUNT\_rate\_win\_pvp = HY\_PAY\_COUNT\_num\_win\_pvp/HY\_PAY\_COUNT\_count\_pvp print(f’活跃付费用户平均PVP次数:{HY\_PAY\_COUNT\_pvp\_battle\_coun}’) print(f’活跃付费用户主动发起PVP概率:{HY\_PAY\_COUNT\_rate\_lanc\_pvp}’) print(f’活跃付费用户PVP胜利概率:{HY\_PAY\_COUNT\_rate\_win\_pvp}’)  (4) 活跃付费用户平均PVe次数 HY\_PAY\_COUNT\_pve\_battle\_coun = data3[(data3.avg\_online\_minutes>10) & (data3.pay\_price>0)].pve\_battle\_count.mean() 付费用护pve总次数 HY\_PAY\_COUNT\_count\_pve = data3[(data3.avg\_online\_minutes>10) & (data3.pay\_price>0)].pve\_battle\_count.sum() 付费用护pvp发起次数 HY\_PAY\_COUNT\_count\_lanch\_pve = data3[(data3.avg\_online\_minutes>10) & (data3.pay\_price>0)].pve\_lanch\_count.sum() 付费用户主动发起PVe概率 HY\_PAY\_COUNT\_rate\_lanc\_pve = HY\_PAY\_COUNT\_count\_lanch\_pve/HY\_PAY\_COUNT\_count\_pve 付费用户PVe胜利总次数 HY\_PAY\_COUNT\_num\_win\_pve = data3[(data3.avg\_online\_minutes>10) & (data3.pay\_price>0)].pve\_win\_count.sum() 付费用户PVe胜利概率 HY\_PAY\_COUNT\_rate\_win\_pve = HY\_PAY\_COUNT\_num\_win\_pve/HY\_PAY\_COUNT\_count\_pve print(f’付费用户平均PVE次数:{HY\_PAY\_COUNT\_pve\_battle\_coun}’) print(f’付费用户主动发起PVE概率:{HY\_PAY\_COUNT\_rate\_lanc\_pve}’) print(f’付费用户PVE胜利概率:{HY\_PAY\_COUNT\_rate\_win\_pve}’)  可视化  简评 1)活跃付费玩家的平均PVE次数和PVP次数都高于活跃玩家的,活跃付费玩家更愿意花时间在这个游戏上; 2)在PVP对战中,活跃付费玩家的获胜还率远超于活跃玩家,说明我们的游戏道具可以让APA享受到对战的获胜的乐趣; 三、分类模型的构建与评估的源代码、注释说明及运行结果 1.先构建特征热力矩阵图,了解各特征之间关系。 本部分需要完成回归模型和分类模型以及比较,故了解各特征关系尤为重要。在此之前创建一个新特征feature,将在线时间不满全体玩家平均在线时间一半的玩家定义为feature。并导入data3作为最后位一个特征。  2.模型的构建数据集划分 选用上部分创建的新特征进行分析。 此部分划分数据标签,训练集测试集,并且标准化数据集,将数据集设置为算法可以直接调用的状态。 顺带绘制混淆矩阵。 划分数据标签 data3\_data = data3.iloc[:, :-1] data3\_target = data3.iloc[:, -1] #划分训练集和测试集 from sklearn.model\_selection import train\_test\_split data3\_data\_train, data3\_data\_test, data3\_target\_train, data3\_target\_test = train\_test\_split(data3\_data, data3\_target, test\_size=0.2, random\_state=66) 标准化数据集 from sklearn.preprocessing import StandardScaler stdScale = StandardScaler().fit(data3\_data\_train) data3\_trainScaler = stdScale.transform(data3\_data\_train) data3\_testScaler = stdScale.transform(data3\_data\_test) #混淆矩阵 (1)Python所有方向的学习路线(新版) 这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。 最近我才对这些路线做了一下新的更新,知识体系更全面了。  (2)Python学习视频 包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。  (3)100多个练手项目 我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。  网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。 需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)  一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长! dnimg.cn/d66e3ad5592f4cdcb197de0dc0438ec5.png#pic_center) (3)100多个练手项目 我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。  网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。 需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python) [外链图片转存中...(img-v4n2bjp1-34)] 一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/42683.html