欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手

系統(tǒng) 1789 0

前言

1. 這篇數(shù)據(jù)分析案例,我做了個? 視頻版本 ?,對代碼做了解讀,講了運行的注意事項和一些有的沒的,供需。對于視頻制作還不是很有經(jīng)驗,多包涵。(視頻里有彩蛋)

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第1張圖片

2. 本文在案例的代碼寫完后,我把它發(fā)在了? 虎撲 ?上。結(jié)果,被推薦上了首頁,? 25萬多次瀏覽,近800回復(fù) ?……感謝各位JRs賞臉!

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第2張圖片

3. 獲取原圖、更多球員生成的結(jié)果及完整代碼,請在公眾號“? Crossin的編程教室 ?”內(nèi)回復(fù)關(guān)鍵字:? nba

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

NBA 2018-19 賽季已經(jīng)落下帷幕,猛龍擊敗勇士,成為新科冠軍球隊。

我想,不如來做個? NBA 相關(guān)的數(shù)據(jù)分析 ?案例好了。實際上,數(shù)據(jù)分析團隊對于現(xiàn)在的 NBA 球隊已經(jīng)算是標(biāo)配了,無論是在球員選擇還是戰(zhàn)術(shù)制定上都起著重要的作用。當(dāng)下整個聯(lián)盟越來越盛行的“? 魔球化 ?”打法,其實也正是基于數(shù)據(jù)分析的產(chǎn)物。

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第3張圖片

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第4張圖片

于是,我們就借助? 官方數(shù)據(jù) ?和? Python 的繪圖函數(shù) ?,來看一看? 不同的球員都是在什么位置出手投籃的 ?。

0. 效果展示

照例先看結(jié)果,每個點是一次投籃,? 藍色點是投中,紅色點是未中 ?。挑幾個有特點的:

哈登 ?,魔球得很明顯了,長兩分這種低效率的事絕對不干

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第5張圖片

西蒙斯 ?,古典中鋒

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第6張圖片

德拉贊 ?,中投小王子

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第7張圖片

字母哥 ?,籃下都給你扣糊了!

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第8張圖片

庫里 ?,這個得放全場……

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第9張圖片

科比 ?,生涯累計圖,全方位無死角,包括籃板后負(fù)角度

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第10張圖片

下面來看具體步驟,我們以剛剛獲得本賽季冠軍戒指的林書豪作為例子。

1. 獲取數(shù)據(jù)

NBA 有一個官方統(tǒng)計網(wǎng)站:? http://?stats.nba.com? ,上面有各種數(shù)據(jù),可以說是一個寶藏了。

從網(wǎng)頁上,我沒有找到這次所需的數(shù)據(jù)。但通過一番搜索,我找到了網(wǎng)站的開放接口 API。相關(guān)的接口和文檔你可以從這個項目里查看:

nba_py - http:// stats.nba.com API for python

https://?github.com/seemethere/n?ba_py/

通過以下接口,我們可以獲取某個球員在指定賽季的投籃詳細(xì)數(shù)據(jù):

https://?stats.nba.com/stats/sho?tchartdetail?CFID=33&CFPARAMS=2018-19&ContextFilter=&ContextMeasure=FGA&DateFrom=&DateTo=&GameID=&GameSegment=&LastNGames=0&LeagueID=00&Location=&MeasureType=Base&Month=0&OpponentTeamID=0&Outcome=&PaceAdjust=N&PerMode=PerGame&Period=0&PlayerID=201935&PlusMinus=N&Position=&Rank=N&RookieYear=&Season=2018-19&SeasonSegment=&SeasonType=Regular+Season&TeamID=0&VsConference=&VsDivision=&mode=Advanced&showDetails=0&showShots=1&showZones=0&PlayerPosition=

其中參數(shù)? PlayerID ?是查詢球員的 ID,這個 ID 可以通過在網(wǎng)頁上搜索球員姓名,從對應(yīng)的 URL 中獲取。比如林書豪就是? 202391

https://?stats.nba.com/player/20?2391/

鏈接中的兩處? 2018-19 ?是賽季參數(shù),你可以改成其他賽季,不過我試過不能太早,大約 96 年往前就沒數(shù)據(jù)了,而且早期數(shù)據(jù)精度要差些。

其他參數(shù)可以不用管。

            
              用?requests?庫可輕松獲取結(jié)果(需加上 headers):

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

2. 解析數(shù)據(jù)

返回的數(shù)據(jù)是? JSON ?格式,用? pandas ?轉(zhuǎn)成? DataFrame ?格式,方便后續(xù)處理:

            
              data = response.json()
# 獲取列名即每項投球數(shù)據(jù)的意思
headers = data['resultSets'][0]['headers']
# 獲取投球的相關(guān)數(shù)據(jù)
shots = data['resultSets'][0]['rowSet']
# 轉(zhuǎn) DataFrame
shot_df = pd.DataFrame(shots, columns=headers)
PYthon學(xué)習(xí)企鵝裙:88198-2657  領(lǐng)取python自動化編程資料教程
            
          

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第11張圖片

我們關(guān)心的數(shù)據(jù)就是? LOC_X ?、? LOC_Y ?(出手位置)和? SHOT_MADE_FLAG ?(是否投中)這三列。

3. 繪制投籃點

使用? matplotlib ?庫的散點圖繪制? scatter ?方法就可以把投籃點畫出來,這個我們之前的各種案例里也用過不少次了:

            
              made = shot_df[shot_df['SHOT_MADE_FLAG']==1]
miss = shot_df[shot_df['SHOT_MADE_FLAG']==0]
plt.scatter(miss.LOC_X, miss.LOC_Y, color='r', marker='.', alpha=0.3)
plt.scatter(made.LOC_X, made.LOC_Y, color='b', marker='.', alpha=0.3)
PYthon學(xué)習(xí)企鵝裙:88198-2657  領(lǐng)取python自動化編程資料教程
            
          

我們通過參數(shù)設(shè)定點的大小和透明度,讓顯示更清楚。

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第12張圖片

4. 繪制球場

投籃點畫出來了,不過只是這樣不夠直觀。我們再來加個球場的圖。

[Python數(shù)據(jù)分析]NBA的球星們喜歡在哪個位置出手_第13張圖片

這個是通過? matplotlib ?里的? Circle ?、? Rectangle ?、? Arc ?等方法拼出來的,沒啥特別的技術(shù),但代碼比較繁瑣,這邊就不貼了。(只要你愿意,甚至可以用它畫出小豬佩奇)

5. 添加頭像

最后,再給數(shù)據(jù)圖加上一個頭像,讓它看起來更完整。頭像地址:

https://?stats.nba.com/media/pla?yers/230x185/202391.png

或者

https://?ak-static.cms.nba.com/w?p-content/uploads/headshots/nba/latest/260x190/202391.png

文件名依然是球員的 ID,但這個地址并不是對所有球員有效,可做下異常處理。

            pic = urllib.request.urlretrieve("http://stats.nba.com/media/players/230x185/202391.png")
# imread 讀取的圖像可以被 matplotlib 繪制
head_pic = plt.imread(pic[0])
# 將球員圖片放置于右上角,并設(shè)置縮小等級以配合整個圖片
img = OffsetImage(head_pic, zoom=0.6)
# (x, y) 控制將球員放在你想要放的位置
img.set_offset((540,640))
# 添加球員圖片
fig.gca().add_artist(img)
          

如果在你的電腦上位置不對,記得修改下? offset ?的值(不同系統(tǒng),甚至不同編譯器都可能存在差異)。

最終效果:


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩在线观看 | 国产一区二区三区在线看片 | 一区不卡 | 日日夜夜精品免费视频 | 精品日韩欧美一区二区三区在线播放 | 激情五月色婷婷在线观看 | 国产大毛片 | 久久免费看少妇高潮A片JA | 91色在线观看| 欧美日韩精品一区二区三区蜜桃 | 国产精品成人免费一区久久羞羞 | 日本大片久久久高清免费看 | 色哦色哦哦色天天综合 | 亚洲成人在线免费视频 | 奇米在线播放 | 久久av一区 | 亚州男人天堂 | 91免费看 | 99久久精约久久久久久清纯 | 亚洲国产成人九九综合 | 国产成人精品久久亚洲高清不卡 | 一区二区三区欧美在线 | 五月天婷婷网亚洲综合在线 | 97影院2 | 欧美一级高潮片免费的 | 成人在线视频网站 | 91在线最新 | 天天操,夜夜操 | 日一区二区| 一二三区av | 天天操夜夜做 | 欧美成人精品一区二区三区 | 国产正在播放 | 国产高清区 | 性视频一区二区 | 久久一区二区明星换脸 | 一区二区免费看 | 亚洲视频在线视频 | 91干b| 国产美女精品 | 四季久久免费一区二区三区四区 |