python运动物体追踪_动图,用Python追踪NBA球员的运动轨迹

编译|黄念程序注释|席雄芬动画效果| 顾运筠校对|丁一,姚佳灵

编辑按:

我曾是个狂热的飞人乔丹的球迷。当年,几乎看了他的每一场比赛!看NBA的比赛是我生命中不可缺少的部分,这是我看到这个利用Python写NBA球员系列时,特别感兴趣的原因。希望这个系列能带给大家一点关于NBA的知识。同时为中国男篮再次获得亚锦赛冠军喝彩!什么时候,我们的CBA也提供这么详细的数据让大家研究一下队员就好了。

文摘曾于8月18日发布《如何运用Python绘制NBA投篮图表》,与本文有直接联系,点击文章名称可回顾旧文。

在本文中,我将介绍如何在stats.nba.com上的比赛运动动画中提取一些额外的信息。

In[1]:

In[2]:

我们将从一场比赛中提取信息。这是快船队(Clippers)和火箭队(Rockets)在季后系列赛的第5场比赛。在比赛中,James Harden瓦解了快船队的防守,冲向篮筐,把球传给Trevor Ariza,轻松获得3分。

我已经在下面嵌入了运动动画。

In[3]:

输出是一个动画

获取数据

下面是我们从stats.nba.com的应用程序接口获取数据的链接。链接里有2个参数:eventid是特定比赛的ID,gameid则是季后赛的ID。

In[4]:

我们发出请求提取数据

In[5]:

Out[5]:

我们想要的数据在:home (主场球员的数据),visitors (客场球员的数据),和moments (使用于动画中用于绘制球员运动轨迹信息的数据)

In[6]:

让我们看看home字典里包含的信息。

In [7]:

home

Out[7]:

Visitor字典包含了关于快船队的同样类型的信息。

In[8]:

visitor

Out[8]:

现在,让我们看看moments列表。

In [9]:

#检查长度

len(moments)

Out[9]:

700

长度告诉我们,上面的动画由700个项目/时刻组成。但是,都有些什么信息呢?让我们来看看第一个。

In [10]:

moments[0]

Out[10]:

[3,

1431486313010,

715.32,

19.0,

None,

[[-1, -1, 43.51745, 10.76997, 1.11823],

[1610612745, 1891, 43.21625, 12.9461, 0.0],

[1610612745, 2772, 90.84496, 7.79534, 0.0],

[1610612745, 2730, 77.19964, 34.36718, 0.0],

[1610612745, 2746, 46.24382, 21.14748, 0.0],

[1610612745, 201935, 81.0992, 48.10742, 0.0],

[1610612746, 2440, 88.12605, 11.23036, 0.0],

[1610612746, 200755, 84.41011, 43.47075,0.0],

[1610612746, 101108, 46.18569, 16.49072,0.0],

[1610612746, 201599, 78.64683, 31.87798,0.0],

[1610612746, 201933, 65.89714, 25.57281,0.0]]]

首先,我们看到moments中的时刻或项目是一个包含了一堆信息的列表。我们逐一查看列表中的每一个项目。

1 moments[0]中的第1项是这一刻所发生的时期或季度。

2 Unix时间。(是一种时间表示方式,定义为从格林威治时间1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒——译者注)

3第3项是指比赛剩下的时间。

4第4项是指计时器剩下的时间。

5我不知道第5项代表什么。

6第6项是由11个子列表组成的列表,每个子列表包含球场上某个球员或球的坐标。

6.1 11个子列表中的第1个包含了球的信息。

6.1.1前2项是表示teamid和playerid的值,用于表明该列表是关于球的信息。

6.1.2接下来的2项则是x和y坐标值,用于表示球场中球的位置。

6.1.3第5项(最后一项)是代表球

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值