<button id="2ddn7"><acronym id="2ddn7"></acronym></button>

<button id="2ddn7"><acronym id="2ddn7"></acronym></button>

  • <button id="2ddn7"><object id="2ddn7"></object></button>
      1. <s id="2ddn7"></s>
        更多課程 選擇中心


        Python培訓

        400-111-8989

        數據分析:尋找Python優計算性能

        • 發布:Altman
        • 來源:數獵天下DataHunter
        • 時間:2018-02-09 18:25

        1、場景描述

        在數據統計分析過程中,求累計值(總和)是常用的統計指標之一,市面上的各種流行數據庫均支持的查詢方式基本如下:

        select sum(c) from table_name;

        當數據量在小規模時,sum只是一瞬間的事情,讓你感覺電腦真牛逼啊,我掰手指頭要算半天的數,它居然可以這么快,下面是1萬多條數據的字段求和,只用了8ms。

        但是當數據量不斷增長到一個量級時,比如說,先定個小目標:一億條訂單求總額,你可以嘗試在常規的數據庫上執行同樣的語句需要多長時間。

        在我的電腦上執行這樣的查詢,大約需要10s。

        或者更大的量級,十億、百億、萬億?你一秒鐘給我算出來,哈哈,電腦也算懵逼了。

        采用分布式存儲、分布式計算,是目前解決大規模計算的通用方法,讓你吃100個饅頭,估計一禮拜也吃不完,做慈善,一人一個分給班里的同學,幾分鐘就沒了,吃不完的那個放學別走。

        2、舉栗說明

        今天我們不講分布式計算,先看看如何在單機上達到優的計算性能。

        以下的示例,用python語言模擬求1億條訂單金額的平均值。

        大家注意:我國小學生以后的課程都有python了,在未來編程是個基本技能。

        2.1 首先用傳統的For Loop方式

        還是一億條數據跑分

        結果:

        看來也不快啊,花了十幾秒,python在沒有特定優化的前提下,比Java,Go語言慢了不少。

        2.2 內置 sum 函數上場

        不過我們知道python有內置的sum函數,是不是會快一點?讓我們來試試:

        結果:

        不到十秒,快了一點點,但還是不理想。

        2.3 神兵numpy

        聽說有個numpy庫,可以向量化(vectorization)執行各種運算,牽到臺上看看:

        結果:

        哎呀48毫秒,真心牛逼啊,足足快了幾百倍,比Go、Java都快,不信你可以自己寫個Go語言的版本對比一下。

        2.3 沒完

        聽說還有個叫numba的,看簡寫nb也很NB,要不把剛才的那些再跑一遍瞧瞧:

        可以看出numba對For Loop的提升明顯,對內置sum和numpy向量化影響不大。

        來個對比圖,一目了然(柱子越低性能越好):


        3、結論:磨刀不誤砍柴工

        現在有些數據庫為了滿足OLAP的需求,已經集成了向量化處理,通過測評,的確是顯著提高了數據分析統計的性能,限于篇幅,今天不在此展開了。

        Python numpy庫主要提供:

        ndarray,速度快且空間高效的多維array,可進行向量化算術操作和更高級推廣應用能力。

        標準數學函數,可快速執行整個array上的數據操作,而不需要寫循環:

        比如說arr = np.array([[1.,2.,3.],[4.,5.,6.]]),可以進行arr * arr,arr * 0.5,1/arr等運算,這些運算都是對array中的元素做相應的計算,即向量化的操作。

        本文內容轉載自網絡,來源/作者信息已在文章頂部表明,版權歸原作者所有,如有侵權請聯系我們進行刪除!

        預約申請免費試聽課

        填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

        上一篇:聆聽:Python之父詮釋Python的精神和文化
        下一篇:python學習手冊-環境安裝和配置

        Python中類的屬性有哪幾種

        Python語法你知道多少

        Python 中常見的配置文件寫法

        Python爬蟲可以做什么

        • 掃碼領取資料

          回復關鍵字:視頻資料

          免費領取 達內課程視頻學習資料

        • 視頻學習QQ群

          添加QQ群:1143617948

          免費領取達內課程視頻學習資料

        Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

        選擇城市和中心
        黑龍江省

        吉林省

        河北省

        湖南省

        貴州省

        云南省

        廣西省

        海南省

        青青青草网站免费观看|青青青视频在线观看 超真实强奷视频在线看 百度 好搜 搜狗
        <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>