日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

NBA数据分析初探(上)

發(fā)布時(shí)間:2024/4/24 综合教程 43 生活家
生活随笔 收集整理的這篇文章主要介紹了 NBA数据分析初探(上) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#%matplotlib inline    ##魔法命令了解一下, 內(nèi)嵌畫圖  是IPython的內(nèi)置magic函數(shù),那么在Pycharm中是不會(huì)支持的。

#載入數(shù)據(jù):
data=pd.read_csv('D:/pycharm_ngs_programs/data_analysis/nba_2017_nba_players_with_salary.csv')
print(data.head(5))

## 描述統(tǒng)計(jì)
print(data.shape)
print(data.describe())

輸出結(jié)果如下:

Unnamed: 0  Rk             PLAYER POSITION  AGE    MP    FG   FGA    FG%  
0           0   1  Russell Westbrook       PG   28  34.6  10.2  24.0  0.425   
1           1   2       James Harden       PG   27  36.4   8.3  18.9  0.440   
2           2   3      Isaiah Thomas       PG   27  33.8   9.0  19.4  0.463   
3           3   4      Anthony Davis        C   23  36.1  10.3  20.3  0.505   
4           4   6   DeMarcus Cousins        C   26  34.2   9.0  19.9  0.452   

    3P       ...         GP   MPG  ORPM  DRPM   RPM  WINS_RPM   PIE    PACE  
0  2.5       ...         81  34.6  6.74 -0.47  6.27     17.34  23.0  102.31   
1  3.2       ...         81  36.4  6.38 -1.57  4.81     15.54  19.0  102.98   
2  3.2       ...         76  33.8  5.72 -3.89  1.83      8.19  16.1   99.84   
3  0.5       ...         75  36.1  0.45  3.90  4.35     12.81  19.2  100.19   
4  1.8       ...         72  34.2  3.56  0.64  4.20     11.26  17.8   97.11   

    W  SALARY_MILLIONS  
0  46            26.50  
1  54            26.50  
2  51             6.59  
3  31            22.12  
4  30            16.96  

[5 rows x 39 columns]
       Unnamed: 0          Rk         AGE          MP          FG         FGA  
count  342.000000  342.000000  342.000000  342.000000  342.000000  342.000000   
mean   170.500000  217.269006   26.444444   21.572515    3.483626    7.725439   
std     98.871128  136.403138    4.295686    8.804018    2.200872    4.646933   
min      0.000000    1.000000   19.000000    2.200000    0.000000    0.800000   
25%     85.250000  100.250000   23.000000   15.025000    1.800000    4.225000   
50%    170.500000  205.500000   26.000000   21.650000    3.000000    6.700000   
75%    255.750000  327.750000   29.000000   29.075000    4.700000   10.400000   
max    341.000000  482.000000   40.000000   37.800000   10.300000   24.000000   

              FG%          3P         3PA         3P%       ...         
count  342.000000  342.000000  342.000000  320.000000       ...          
mean     0.446096    0.865789    2.440058    0.307016       ...          
std      0.078992    0.780010    2.021716    0.134691       ...          
min      0.000000    0.000000    0.000000    0.000000       ...          
25%      0.402250    0.200000    0.800000    0.280250       ...          
50%      0.442000    0.700000    2.200000    0.340500       ...          
75%      0.481000    1.400000    3.600000    0.373500       ...          
max      0.750000    4.100000   10.000000    1.000000       ...          

               GP         MPG        ORPM        DRPM         RPM    WINS_RPM  
count  342.000000  342.000000  342.000000  342.000000  342.000000  342.000000   
mean    58.198830   21.572807   -0.676023   -0.005789   -0.681813    2.861725   
std     22.282015    8.804121    2.063237    1.614293    2.522014    3.880914   
min      2.000000    2.200000   -4.430000   -3.920000   -6.600000   -2.320000   
25%     43.500000   15.025000   -2.147500   -1.222500   -2.422500    0.102500   
50%     66.000000   21.650000   -0.990000   -0.130000   -1.170000    1.410000   
75%     76.000000   29.075000    0.257500    1.067500    0.865000    4.487500   
max     82.000000   37.800000    7.270000    6.020000    8.420000   20.430000   

              PIE        PACE           W  SALARY_MILLIONS  
count  342.000000  342.000000  342.000000       342.000000  
mean     9.186842   98.341053   28.950292         7.294006  
std      3.585475    2.870091   14.603876         6.516326  
min     -1.600000   87.460000    0.000000         0.030000  
25%      7.100000   96.850000   19.000000         2.185000  
50%      8.700000   98.205000   29.000000         4.920000  
75%     10.900000  100.060000   39.000000        11.110000  
max     23.000000  109.870000   66.000000        30.960000  

[8 rows x 36 columns]

從數(shù)據(jù)中看幾項(xiàng)比較重要的信息:

球員平均年齡為26.4歲,年齡段在19-38歲;

球員平均年薪為730萬(wàn)美金,當(dāng)時(shí)最大的合同為年薪3000萬(wàn)美金;

球員平均出場(chǎng)時(shí)間為21.5分鐘,某球員場(chǎng)均出場(chǎng)37.8分鐘領(lǐng)跑聯(lián)盟,當(dāng)然也有只出場(chǎng)2.2分鐘的角色球員,機(jī)會(huì)來(lái)之不易。

類似的信息我們還能總結(jié)很多。

效率值相關(guān)性分析

在眾多的數(shù)據(jù)中,有一項(xiàng)名為“RPM”,標(biāo)識(shí)球員的效率值,該數(shù)據(jù)反映球員在場(chǎng)時(shí)對(duì)球隊(duì)比賽獲勝的貢獻(xiàn)大小,最能反映球員的綜合實(shí)力。
我們來(lái)看一下它與其他數(shù)據(jù)的相關(guān)性:

dat_cor=data.loc[:,['RPM','AGE','SALARY_MILLIONS','ORB','DRB','TRB','AST','STL','BLK','TOV','PF','POINTS','GP','MPG','ORPM','DRPM']]
coor=dat_cor.corr()
sns.heatmap(coor,square=True, linewidths=0.02, annot=False) 
#seaborn中的heatmap函數(shù),是將多維度數(shù)值變量按數(shù)值大小進(jìn)行交叉熱圖展示。

由相關(guān)性分析的heatmap圖可以看出,RPM值與年齡的相關(guān)性最弱,與“進(jìn)攻效率值”、“場(chǎng)均得分”、“場(chǎng)均搶斷數(shù)”等比賽技術(shù)數(shù)據(jù)的相關(guān)性最強(qiáng)。

我在接下來(lái)的分析中將把RPM作為評(píng)價(jià)一個(gè)球員能力及狀態(tài)的直觀反應(yīng)因素之一。

球員數(shù)據(jù)分析部分

此處練習(xí)了一下pandas基本的數(shù)據(jù)框相關(guān)操作,包括提取部分列、head()展示、排序等,簡(jiǎn)單通過(guò)幾個(gè)維度的展示,籠統(tǒng)地看一下16-17賽季那些球員沖在聯(lián)盟的最前頭。

data.loc[:,['PLAYER','SALARY_MILLIONS','RPM','AGE','MPG']].sort_values(by='SALARY_MILLIONS',ascending=False).head(10)
#效率值最高的10名運(yùn)動(dòng)員
data.loc[:,['PLAYER','RPM','SALARY_MILLIONS','AGE','MPG']].sort_values(by='RPM',ascending=False).head(10)
#出場(chǎng)時(shí)間最高的10名運(yùn)動(dòng)員
data.loc[:,['PLAYER','RPM','SALARY_MILLIONS','AGE','MPG']].sort_values(by='MPG',ascending=False).head(10)

結(jié)果如下:

Seaborn常用的三個(gè)數(shù)據(jù)可視化方法

單變量:

distplot方法可以繪制直方圖和連續(xù)密度估計(jì),通過(guò)distplot方法seaborn使直方圖和密度圖的繪制更為簡(jiǎn)單,

我們先利用seaborn中的distplot繪圖來(lái)分別看一下球員薪水、效率值、年齡這三個(gè)信息的分布情況,代碼如下:

#單變量:
#我們先利用seaborn中的distplot繪圖來(lái)分別看一下球員薪水、效率值、年齡這三個(gè)信息的分布情況,上代碼:
#分布及核密度展示
sns.set_style('darkgrid') #設(shè)置seaborn的面板風(fēng)格
plt.figure(figsize=(12,12))
plt.subplot(3,1,1)  #拆分頁(yè)面,多圖展示
sns.distplot(data['SALARY_MILLIONS'])
plt.xticks(np.linspace(0,40,9))
plt.ylabel(u'$Salary$',size=10)

plt.subplot(3,1,2)
sns.distplot(data['RPM'])
plt.xticks(np.linspace(-10,10,9))
plt.ylabel(u'$RPM$',size=10)

plt.subplot(3,1,3)
sns.distplot(data['AGE'])
plt.xticks(np.linspace(20,40,11))
plt.ylabel(u'$AGE$',size=10)

結(jié)果如下:



雙變量:
dat1=data.loc[:,['RPM','SALARY_MILLIONS','AGE','POINTS']]
sns.jointplot(dat1.SALARY_MILLIONS,dat1.AGE,kind='kde',size=8) 


上圖展示的是球員薪水與年齡的關(guān)系,采用不同的kind方式(等高線圖/hex/散點(diǎn)等),我們可以整體感受一下年齡和薪水的集中特點(diǎn),
大部分球員集中在22-25歲拿到5million以下的薪水,當(dāng)然也有“年少成名”和“越老越妖”的情況。



多變量:
dat1=data.loc[:,['RPM','SALARY_MILLIONS','AGE','POINTS']]
sns.pairplot(dat1) #相關(guān)性展示,斜對(duì)角為分布展示,可以直觀地看變量是否具有現(xiàn)行關(guān)系

圖展示的是球員薪水、效率值、年齡及場(chǎng)均得分四個(gè)變量間的兩兩相關(guān)關(guān)系,對(duì)角線展示的是本身的分布圖,由散點(diǎn)的趨勢(shì)我們可以看出不同特征的相關(guān)程度。
整體看各維度的相關(guān)性都不是很強(qiáng),正負(fù)值與薪水和場(chǎng)均得分呈較弱的正相關(guān)性,
而年齡這一屬性和其他的變量相關(guān)性較弱


參考資料 pyhton 愛(ài)好者社區(qū)#https://mp.weixin.qq.com/s/gl_8Wxl_Oq7xvGUdsHR3Bg

總結(jié)

以上是生活随笔為你收集整理的NBA数据分析初探(上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。