<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給AI研習社
      發送

      0

      NBA 史上實力最弱的球隊是哪個?用 Python + SQL 我們找到了答案

      本文作者: AI研習社 2017-05-22 10:08
      導語:NBA 史上實力最弱的球隊是哪個?

      NBA 史上實力最弱的球隊是哪個?用 Python + SQL 我們找到了答案

      雷鋒網按:此前我們專門發布了一篇文章分析NBA史上實力最強的球隊,詳見《用 Python 分析過去四年的比賽數據,實力最強的 NBA 球隊原來是它》,這次我們來看看最弱的是哪個。原文作者 Kaiser,景略集智總經理,原載于集智網專欄,雷鋒網已獲授權。

      文中部分代碼會有“代碼補完”字樣的注釋,是留給讀者自己補完并在線評測的,相當于小作業,這里就請大家自行腦補吧。(編者注:每個需要補充的部分都給出了提示信息)

        01. elo值

      elo值就像現在競技網游里的天梯系統,隊伍在每場比賽后會根據表現有所調整,勝增敗減,小勝小增,大勝大增。elo值反映了一支隊伍在常規賽中的勝場期望,1800的對應期望是獲勝67場以上,就是王朝級強隊了。具體的天梯分段分布如下:

      ELO值 匹配戰績 對應隊伍描述
      1800 67-15 史詩級別
      1700 60-22 總冠軍爭奪者
      1600 51-31 季后賽水平
      1500 41-41 平均水平
      1400 31-51 樂透水平
      1300 22-60 無言以對
      1200 15-67 糟糕透頂

      歷史上最高紀錄是96年總決賽階段的公牛,曾一度突破了1850分。

      知名數據分析網站538(fivethirtyeight.com)提供了NBA歷史賽程的 elo 值記錄(至2015賽季),有六萬余條數據。這個數據量不能算很大,但是在本地用Excel直接打開操作,估計體驗還是挺痛苦的,這里就介紹一下如何用 Python+SQL 來處理,或許會對廣大勞形于 Excel 之間的朋友們有所幫助。

        02. 元組

      元組(tuple)是另一種Python中常用的數據類型,他跟列表非常相似,都可以包含若干元素,并且元素的調用都是通過方括號[]+索引的形式。

      sample_list = [0,1,2,3]
      sample_tuple = (0,1,2,3)

      # 列表的第1個元素
      sample_list[0]

      # 元組的第2個元素
      sample_tuple[1]

      主要區別在于:

      ● 元組用括號()定義,列表用方括號[]定義

      ● 元組不可更改

      ● 即使只有一個元素,也需要有逗號,如(item1, )。如果缺了這個逗號,得到的仍是元素本身,而不是元組。

      元組只能在定義時賦值,如果強行更改會得到解釋器的錯誤提示。

      TypeError:
      'tuple' object does not support item assignment

      有的函數返回值并非一個數值或字符,而是具有多重輸出,這時就以元組格式存在。比如下例返回的是兩個輸入參數的和與乘積,可以點擊運行查看,兩個輸出在()中。

      def sum_times(x, y):
         return (x + y), (x * y)sum_times(2,3)

        03. 數據庫

      在之前的幾篇教程中,我們已經接觸過了一些數據集,既有在程序中生成的,也有存儲在文本文件中的。對于體積較大的數據集,一般都存在文件中,程序運行時再讀入內存。

      但是文件存儲數據(.txt或.csv)還面臨很大的問題,一是當數據量比計算機內存還要大的時候,會帶來沉重的計算負擔甚至無法運行;二是數據有可能高頻變化,比如電商在雙11高峰期每秒就有幾萬次交易,普通的文件格式顯然無法處理。

      于是數據庫(database)應運而生。數據庫首先是結構化(structured)存儲數據的方式,為了更加靈活的處理數據,程序不再一次性將所有數據讀入內存,而是根據具體需要進行查詢(query),獲得相應的數據集。完成這些工作的程序語言叫作SQL(Structured Query Language),在計算機方面稍有常識的朋友想必都對這個縮寫不會陌生。

      著名的關系型數據庫管理系統有MySQL, Oracle等。

      NBA 史上實力最弱的球隊是哪個?用 Python + SQL 我們找到了答案

        04. SQLite

      SQL是專為查詢、操作數據庫所用的語言,所以不像Python, JavaScript等語言那樣功能豐富,擴展多樣。

      一個數據庫由若干個表(table)組成,就像每個Excel文件里有多個Sheets。每個表又包含行(row)列(column),這就比較好理解了。一行代表一個樣本,而多列定義了各個維度上的屬性。

      SQLite是一種輕型的數據庫管理系統,占用資源極低且處理速度快,目前更新到了3版本。Python有專門處理SQLite語句的庫sqlite3

      import sqlite3

      以下我們將以一份NBA的歷史賽程數據為例,來了解SQL的基本法則與應用方法。(數據來源:FiveThirtyEight

      NBA 史上實力最弱的球隊是哪個?用 Python + SQL 我們找到了答案

        05. 查詢

      與數據庫進行通信的最基本形式是查詢(query),即返回符合條件的數據子集,其基本關鍵字是SELECT,SELECT后面跟所選列的表頭。前面提到過一個數據庫里可能存在多個表,所以查詢語句必須指定來源表,關鍵字是FROM。

      SELECT column1, column2, ... FROM table;

      注意SQL是要求句末有分號(;)的,這與Python的習慣大為不同,可能會喚起一度為C++支配的恐懼。

      NBA數據庫里只含一張表,名為sheet,假設我們想要查詢sheet表中的team_id列,那么對應的SQL是:

      SELECT team_id FROM nba_history;

      如果數據庫非常龐大,那么即使哪怕僅僅查詢某些列,也是不小的計算量,這里可以引入新的關鍵字LIMIT,之后接想要查詢的行數。比如只想要前 5 行的 team_id 列,那么SQL為:

      SELECT team_id FROM nba_history LIMIT 5;

      下例將通過Python調用SQLite,查詢elo_n和win_equiv兩列的前5行:

      import sqlite3

      conn = sqlite3.connect('/mnt/vol0/Py_Intro/05_tuple_database/nbaallelo.db')

      cur = conn.cursor()


      # 代碼補完


      query = 


      #代碼補完


      cur.execute(query)

      elos = cur.fetchall()

      conn.close()


      print(elos)


      補完提示:回顧示例,替換關鍵字之間的名稱,并以字符類型賦值予變量 query

      可見,查詢語句返回的是以元組(tuple)為元素的列表(list)。上例的輸出即是5個(elo_n, win_equiv)組成的列表,應為:

      [(1293.2767, 40.29483),

       (1306.7233, 41.70517), 

      (1309.6521, 42.012257), 

      (1297.0712, 40.692783), 

      (1279.6189, 38.864048)]

        06. SQLite with Python

      在04節最后的例子中,除了SQL語句,還有很多Python命令,這些是Python調用SQLite的語句。

      連接對象

      首先是建立與數據庫的聯系,sqlite3.connect()將返回Connection實例對象,然后存為conn變量,此時的conn對應的是整個數據庫。

      import sqlite3

      conn = sqlite3.connect("/mnt/vol0/Py_Intro/05_tuple_database/nbaallelo.db")

      游標對象

      Connection對象的.cursor()可以創建游標對象(cursor object)。游標對象可以對數據庫執行SQL語句并進行更靈活的數據操作。

      NBA 史上實力最弱的球隊是哪個?用 Python + SQL 我們找到了答案

      王莽的游標

      query是純SQL語句,通過cur.execute()實際執行,此時數據庫查詢的結果仍在cur對象中。最后調用cur.fetchall()將查詢結果全部返回,并存至變量elos,就是最終得到的元組列表。

      如果只想返回一條查詢結果,可以使用cur.fetchone()

      關于Python與SQLite3的聯合應用,以后還會深入講解,本篇仍將重點回歸到SQL語句上。

        07. Where

      僅僅從數據庫的某個表中查詢某一列的前若干行,這樣的操作局限性太大,很難滿足應用需求。實際上我們感興趣的數據子集并非總是按照順序排列,而是符合某種限制條件。

      為了進一步縮減精確查詢范圍,可以使用關鍵字WHERE。比如我們想要查詢NBA歷史上,賽后elo值elo_n高于1850的強隊ID,其SQL語句是:

      SELECT team_id, elo_n FROM sheet WHERE elo_n > 1850

      查詢結果表明,歷史上唯一一支elo值曾經突破1850的隊伍是1996年總決賽時期的芝加哥公牛。

      下面請查詢elo_n低于1100的弱隊ID,及其對應比賽日期。sqlite3庫以及連接對象、游標對象已經預定義,可以從定義SQL查詢語句query開始。

      # 代碼補完


      query =


      # 代碼補完


      cur.execute(query)

      elo_1100 = cur.fetchall()

      conn.close()


      print(elo_1100)


      補完提示:請以"fran_id", "date_game", "elo_n"的順序進行查詢。

      查詢篩選結果顯示,歷史上一度衰到1100以下的弱旅,也只有1968年一支名為"Squires"的隊伍。

      NBA 史上實力最弱的球隊是哪個?用 Python + SQL 我們找到了答案

      他們這么弱,我認為與名字起的不好是分不開的。"Squire"在英文中是“侍從”的意思,在《爐石傳說》中,就有很多仆從名為"Squire",比如11圣盾小兵:

      NBA 史上實力最弱的球隊是哪個?用 Python + SQL 我們找到了答案

      雷鋒網(公眾號:雷鋒網)相關閱讀:

      用 Python 分析過去四年的比賽數據,實力最強的 NBA 球隊原來是它

      禪與奶罩識別藝術(上)


      “TensorFlow & 神經網絡算法高級應用班”開課了!

      最受歡迎的谷歌TensorFlow 框架,ThoughtWorks大牛教你玩轉深度學習!

      課程鏈接:http://www.mooc.ai/course/82

      加入AI慕課學院人工智能學習交流QQ群:624413030,與AI同行一起交流成長



      雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

      NBA 史上實力最弱的球隊是哪個?用 Python + SQL 我們找到了答案

      分享:
      相關文章

      編輯

      聚焦數據科學,連接 AI 開發者。更多精彩內容,請訪問:yanxishe.com
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 欧美内射深喉中文字幕| 国产三级a三级三级| 三级色网| 日本一区二区三区四区在线看 | 亚洲精品影院| 国产精品手机视频一区二区| 7777精品久久久大香线蕉| 成人在线亚洲| 精品国产av 无码一区二区三区| 1024视频在线| 欧美性猛交xxxx黑人| 精品无码产区一区二| 亚洲精品在线成人| 亚洲中文字幕第二十三页| 99热这里只有精品国产免费免费| 亚洲va在线va天堂xx xx| 91久久精品国产| 成年无码av片在线| 揭东县| 亚洲国产精品无码久久久秋霞1| 亚洲精品乱码久久久久99| 日韩成人电影一区二区| 亚洲人妻一区二区精品| 亚洲中文制服丝袜欧美精品| 97人妻免费碰视频碰免| 毛片免费试看| 久久综合五月丁香六月丁香| 久久久精品午夜免费不卡| 国产黑丝袜在线观看视频| 孟村| 久久久久99精品成人片牛牛影视 | 99re在线观看| 亚洲乱码中文字幕综合久久| 内射少妇一区27p| 99久久国产综合精品成人影院| 国产在线视频国产永久视频| 久久精品国产2020| 粉嫩导航| 国产无遮挡裸体免费视频在线观看| 成人做爰视频www网站小优视频| 久久夜色精品国产欧美乱|