[Python数据分析]NBA的球星们喜欢在哪个位置出手

2020-06-19 00:00:00 数据 获取 绘制 球员 投篮

前言

1. 这篇数据分析案例,我做了个视频版本,对代码做了解读,讲了运行的注意事项和一些有的没的,供需。对于视频制作还不是很有经验,多包涵。(视频里有彩蛋)

NBA球星出手点分布https://www.zhihu.com/video/1129401682580348928

2. 本文在案例的代码写完后,我把它发在了虎扑上。结果,被推荐上了首页,25万多次浏览,近800回复……感谢各位JRs赏脸!

3. 获取原图、更多球员生成的结果及完整代码,请在公众号“Crossin的编程教室”内回复关键字:nba

--------------------

NBA 2018-19 赛季已经落下帷幕,猛龙击败勇士,成为新科球队。

我想,不如来做个 NBA 相关的数据分析案例好了。实际上,数据分析团队对于现在的 NBA 球队已经算是标配了,无论是在球员选择还是战术制定上都起着重要的作用。当下整个联盟越来越盛行的“魔球化”打法,其实也正是基于数据分析的产物。

于是,我们就借助官方数据Python 的绘图函数,来看一看不同的球员都是在什么位置出手投篮的

0. 效果展示

照例先看结果,每个点是一次投篮,蓝色点是投中,红色点是未中。挑几个有特点的:

哈登,魔球得很明显了,长两分这种低效率的事不干

西蒙斯,古典中锋

德拉赞,中投小王子

字母哥,篮下都给你扣糊了!

库里,这个得放全场……

科比,生涯累计图,全方位无死角,包括篮板后负角度

下面来看具体步骤,我们以刚刚获得本赛季戒指的林书豪作为例子。

1. 获取数据

NBA 有一个官方统计网站:stats.nba.com,上面有各种数据,可以说是一个宝藏了。

从网页上,我没有找到这次所需的数据。但通过一番搜索,我找到了网站的开放接口 API。相关的接口和文档你可以从这个项目里查看:

nba_py - stats.nba.com API for python

github.com/seemethere/n

通过以下接口,我们可以获取某个球员在指定赛季的投篮详细数据:

stats.nba.com/stats/sho


其中参数PlayerID是查询球员的 ID,这个 ID 可以通过在网页上搜索球员姓名,从对应的 URL 中获取。比如林书豪就是202391

stats.nba.com/player/20

链接中的两处 2018-19 是赛季参数,你可以改成其他赛季,不过我试过不能太早,大约 96 年往前就没数据了,而且早期数据精度要差些。

其他参数可以不用管。

requests 库可轻松获取结果(需加上 headers):

response = requests.get(url, headers=headers, timeout=5)

相关文章