【数据说第四期】篮球比赛中的投篮选择

篮球比赛中的投篮选择

参加过篮球比赛的同学,在球场上是否有这样的经历?
当上一次投篮未命中时,你会倾向于比上一次更近的距离出手投篮,当上一次投篮稳稳命中时,你会想尝试下比上一次更更远距离的出手。于是,抓取了一些NBA球员的数据,来看看他们在这些情况下,做出怎样的投篮选择?

1,数据准备

本次的数据来自于 https://www.basketball-reference.com/,这里有很多有意思的数据,这次主要抓取的是shooting,这里记录球员的所有投篮数据,包括出手位置、出手距离、投篮结果、分值(2/3)等。但是现在网站已有反爬,数据不好抓取。
在这里插入图片描述
主要抓取现役常规赛总得分的前十名球员数据。詹姆斯、安东尼、杜兰特、哈登、维斯布鲁克、保罗、库里、阿尔德里奇、德罗赞、霍华德。20w+行数据。
在这里插入图片描述
对数据进行处理后,得到数据集
在这里插入图片描述
字段说明

字段描述
top投篮点纵坐标,背景图片中到球场的上沿距离
left投篮点横坐标,背景图片中到球场的左侧距离
game_date比赛时间
team比赛双方队伍
shot_result本次投篮结果,Made:命中,Missed:未命中
points得分,2 分球 or 3分球
distance投篮点到篮筐距离,单位:ft(英尺)
player_name球员名称
pre_shoot_result上一次投篮结果,Made:命中,Missed:未命中
dist_diff本次投篮点distance 与 上一次投篮点distance 差值,本次distance - 上一次distance,单位:ft(英尺)
2,数据分析
# 分离数据集
after_made = df[df.pre_shoot_result == 'Made']   # 上一次命中
after_miss = df[df.pre_shoot_result =='Missed']  # 上一次未命中

after_made.dist_diff.describe()
"""
count    90703.000000
mean         2.764738
std         12.134524
min        -36.000000
25%         -3.000000
50%          1.000000
75%         11.000000
max         39.000000
Name: dist_diff, dtype: float64
"""
after_miss.dist_diff.describe()
"""
count    97785.000000
mean        -2.521726
std         12.563584
min        -39.000000
25%        -12.000000
50%         -1.000000
75%          5.000000
max         39.000000
Name: dist_diff, dtype: float64
"""

从整体均值看,命中后,会选择更远的距离出手,反之,会选择更近的距离出手。

print('投失后,下次投篮距离变近比例:{:.2%}'.format(len(after_miss[after_miss.dist_diff < 0])/len(after_miss)))
print('投失后,下次投篮距离变远比例:{:.2%}'.format(len(after_miss[after_miss.dist_diff >= 0])/len(after_miss)))
print('命中后,下次投篮距离变近比例:{:.2%}'.format(len(after_made[after_made.dist_diff < 0])/len(after_made)))
print('命中后,下次投篮距离变远比例:{:.2%}'.format(len(after_made[after_made.dist_diff >= 0])/len(after_made)))

投失后,下次投篮距离变近比例:55.03%
投失后,下次投篮距离变远比例:44.97%
命中后,下次投篮距离变近比例:34.65%
命中后,下次投篮距离变远比例:65.35%
从细分的结果来看,也是得出相同结论:命中后,会选择更远的距离出手,反之,会选择更近的距离出手

在从距离差值直方图来看,在差值< 0的部分,未命中的累计曲线比命中的累计曲线要陡峭的多,也说明了相同结论。
在这里插入图片描述在这里插入图片描述
然而,还可以提出一个新问题,球员投篮命中率会不会受到他们之前是否命中的影响?

print('投失后,本次投篮命中率:{:.2%}'.format(len(after_miss[after_miss.shoot_result =='Made'])/len(after_miss)))
print('命中后,本次投篮命中率:{:.2%}'.format(len(after_made[after_made.shoot_result =='Made'])/len(after_made)))

投失后,本次投篮命中率:48.46%
命中后,本次投篮命中率:47.28%

从计算结果,可以得出:球员投篮命中的几率不会受到他们之前是否命中的影响,每次投篮都是独立事件,跳起来投篮就像扔硬币,所谓“火热手感”也并不存在。

基于这些数据,你还有什么其他分析想法吗?欢迎评论交流!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值