在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

numexpr:你以為numpy已經夠快了,其實它還可以更快

電子設計 ? 來源: 電子設計 ? 作者: 電子設計 ? 2020-12-14 23:53 ? 次閱讀

開篇

python語言被廣泛用于數據分析和機器學習。但是,由于python的底層特性,python的運行速率低一直被廣泛詬病。其中,numpy和pandas的廣泛使用已經將數據處理和機器學習的速率提升了幾個檔次。

但是,隨著數據的越來越多,很多人已經不再滿足numpy和pandas的速度,從而退出了一批加速優化拓展包。這篇文章主要介紹一個輕量、但是功能強大的python擴展包 ”NumExpr",看看它是如何高效解析數學公式的。

NumExpr

NumExpr的使用及其簡單,只需要將原來的numpy語句使用雙引號框起來,并使用numexpr中的evaluate方法調用即可。

第一步:需要引入 numexpr 和 numpy 擴展包;

/`import numexpr as ne

import numpy as np/`



第二步:創建兩個numpy的array - a 和 b;

a和b兩個所包含的數據個數為100萬個。

當我們需要執行簡單的加減乘除的時候,numexpr的效率已經得到了很好地體現,通過執行 2 * a + 3 * b,如果直接操作,需要3.39 毫秒。但是,如果我們是用ne.evaluate加速,可以將時間縮短至1.55 毫秒。

numexpr在更加復雜的數學表達式運算中,表現到底如何呢?

當我們使用如上所示的數學表達式,正常執行需要28.3 ms。而通過numexpr的加速,只需要3.03 ms。



注意,numexpr是可以識別 sin 函數的,所以我們不需要在evaluate里面寫np.sin,可以直接寫 sin。

總結:處理數據量越大,數學計算越復雜,則numexpr的加速效果越明顯。



numpy 和 numexpr 比較

我們可以看到,當np.array的元素個數超過10e8,加速效果更加顯著。

numexpr也支持邏輯表達式和復數表達式的加速,有興趣的讀者朋友可以自行比較。

numexpr 多線程加速

numexpr還有一個重要的加速利器,多線程操作。通過 ne.set/_num/_threads(1) 可以設置線程的數量,更多的線程表示程序可以同時對數學表達式進行計算。

如上所示,如果我們設置單線程,程序運行需要13.4 ms。設置了雙線程,速度則可以提升一倍。

numexpr對pandas的加速
numexpr的設計主要針對的是numpy。同樣的,我們知道pandas也是基于numpy開發的。自然,numexpr同樣可以被用來對pandas加速。

pandas中有一個eval方法就是運用了numexpr,對pandas代碼進行優化加速。

當我們構建幾個pandas的dataframe,然后對它們進行運算的時候,pd.eval 可以將程序從原先的47.4 ms 加速到17.6 ms。

總結

通過以上的實例,numexpr對于numpy和pandas的加速是很顯著的,尤其當數據量比較大和計算比較復雜的情況下。同時,numexpr的使用非常簡單。但是,我們需要注意的是,任何加速工具都會有局限性的,并不是所有的工作都可以使用numexpr進行加速。

審核編輯 黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8428

    瀏覽量

    132845
  • python
    +關注

    關注

    56

    文章

    4801

    瀏覽量

    84878
收藏 人收藏

    評論

    相關推薦

    DAC7718 AVDD供電可以為15V嗎?

    想請教下DAC7718的供電可以為15V么?
    發表于 11-19 06:25

    springboot的項目如何既要用jar包啟動,同時還可以為不同的機房設置不同的配置文件

    作者:京東科技 李意文 1、首先先把配置文件從jar中抽離 示例代碼: ? org.apache.maven.plugins maven-jar-plugin 3.2.0 **/spring-xxx.xml ? 2、把抽離的配置文件,放到conf目錄下 利用maven-assembly-plugin,抽取配置文件到conf目錄下, 示例代碼: ? org.apache.maven.plugins maven-assembly-plugin 3.3.0 src/main/assembly/assembly.xml make-assembly package single ? ? ? ? assembly.xml內容如下: assembly zip dir false ${basedir}/src/bin bin 0755 ${project.build.directory}/${project.build.finalName}.jar lib ${basedir}/../xxx/target/classe
    的頭像 發表于 10-19 16:48 ?556次閱讀
    springboot的項目如何既要用jar包啟動,同時<b class='flag-5'>還可以為</b>不同的機房設置不同的配置文件

    請問PGA280的帶寬是多少呀,輸入信號可以為20kHz嗎?

    您好!請問PGA280的帶寬是多少呀,輸入信號可以為20kHz嗎?
    發表于 09-26 06:13

    CyU3PDmaMultiChannelCommitBuffer失敗后,如何使重置速度更快?

    。 我遇到的問題是,由于缺乏緩沖內存(主機速度不夠快,因為它必須同時處理多個 CX3 數據流),CX3 有時會丟棄一些幀。 這是我目前使用的內存映射(我優化了一些數據區域,并使用 2 級引導加載器
    發表于 07-23 08:29

    可以為XMC 1400系列微控制器使用哪種集成開發環境?

    我們可以為 XMC 1400 系列微控制器使用哪種集成開發環境?
    發表于 07-22 07:41

    使用NumPy實現前饋神經網絡

    要使用NumPy實現一個前饋神經網絡(Feedforward Neural Network),我們需要從基礎開始構建,包括初始化網絡參數、定義激活函數及其導數、實現前向傳播、計算損失函數、以及實現
    的頭像 發表于 07-11 16:30 ?1756次閱讀

    ESP8266在SPI通訊的情況下還可以使用AT指令嗎?

    ESP8266在SPI通訊的情況下還可以使用AT指令嗎?
    發表于 07-09 08:31

    SolidWorks科研版更快地開發產品創意

    在當今競爭激烈的市場環境中,產品創新的速度和質量直接決定了企業的生死存亡。對于科研人員和設計師來說,如何能夠快速、準確地實現產品創意的轉化,是擺在面前的一大挑戰。SolidWorks科研版作為一款
    的頭像 發表于 06-19 16:49 ?285次閱讀

    直流電充電樁可以為車充100%嗎?

    直流充電樁,也稱為快速充電站,是為了滿足電動汽車快速充電需求而設計的。它們能夠直接向電動汽車的電池提供直流電,從而實現比交流充電更快的充電速度。
    的頭像 發表于 04-30 15:27 ?1668次閱讀

    python 學習:在內網中 python庫-numpy 安裝方法,升級pip3版本的指令

    指令格式如下:先下載numpy庫到C盤具體位置 手動安裝指令如下: pip install c:\\\\users\\\\sesa738142
    發表于 04-22 17:18

    以為的RAM不是以為的RAM~

    一、DTCM和AXI連接的RAMSTM32H7系列處理器內部有多個RAM空間,每個RAM空間的大小和響應速度都不一樣。這里面我們重點關注DTCM總線矩陣連接的128KBRAM和AXI總線矩陣連接的512KBRAM。DTCMRAM128KB:MDK配置是IRAM1:起始地址是0x20000000,大小是0x20000,128KBAXIRAM512KB:MDK配
    的頭像 發表于 04-05 08:09 ?1474次閱讀
    <b class='flag-5'>你</b><b class='flag-5'>以為</b>的RAM不是<b class='flag-5'>你</b><b class='flag-5'>以為</b>的RAM~

    曝光航空機器人激光焊接機可以為企業節省多少錢

    焊接機可以為企業節省的成包括以下方面:提高生產效率:機器人激光焊接技術相比傳統焊接技術,如鉚接工藝,可以顯著減少結構重量,降低制造成本,同時提高生產效率。降低能源
    的頭像 發表于 04-02 11:06 ?382次閱讀
    曝光航空機器人激光焊接機<b class='flag-5'>可以為</b>企業節省多少錢

    【開源項目】自制一個創客專屬的無反相機

    WiFi,它還可以: 遠程控制拍照 連接一些舵機以傾斜角度 甚至成為一個遠程機器人... 如果對AI感興趣,它還可以: 通過語音識別說出拍照命令 通過檢測到人物自動拍照 自動對焦人臉 人臉識別并在照片中標記... 有興趣的小伙
    發表于 02-29 15:50

    使用MEMTool刷寫代碼,出來miniwiggle ,還可以用哪些仿真器?

    使用MEMTool刷寫代碼,出來miniwiggle ,還可以用哪些仿真器?
    發表于 02-06 06:48

    為什么GPU比CPU更快?

    GPU比CPU更快的原因并行處理能力:GPU可以同時處理多個任務和數據,而CPU通常只能一次處理一項任務。這是因為GPU的架構使得它可以同時處理多個核心,從而實現高效的并行計算,這是GPU在處理
    的頭像 發表于 01-26 08:30 ?2495次閱讀
    為什么GPU比CPU<b class='flag-5'>更快</b>?
    主站蜘蛛池模板: 天天草视频| 久色tv| 天堂资源中文官网| 国产99热| 亚洲欧美高清在线| 天堂一区二区三区在线观看| 亚洲入口| 免费高清成人啪啪网站| 欧美黑人粗暴另类多交| 国产午夜三区视频在线| 午夜在线免费视频| 国产亚洲视频在线| 欧美色p| 久久亚洲视频| 国产色丁香久久综合| 91成人免费在线视频| 国产精品免费拍拍拍| 在线免费午夜视频| 国产乱码精品一区二区三| 高黄视频| 天天射天天操天天干| 国产综合在线视频| 亚洲一区二区影院| 永久看日本大片免费| 涩久久| 激情六月婷婷| 狠狠躁夜夜躁人人躁婷婷视频| 欧美成人午夜| 国产精品乳摇在线播放| 亚洲日本高清| 午夜精品视频在线看| 久草在线资源网| 中文字幕区| 天天干夜夜玩| 亚洲一卡二卡三卡| 亚洲成人自拍| 你懂得网址在线观看| 两性色午夜视频免费国产| 不卡中文字幕在线| 亚洲最大的成网4438| 午夜看片网站|