女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

numexpr:你以為numpy已經(jīng)夠快了,其實(shí)它還可以更快

電子設(shè)計(jì) ? 來(lái)源: 電子設(shè)計(jì) ? 作者: 電子設(shè)計(jì) ? 2020-12-14 23:53 ? 次閱讀

開(kāi)篇

python語(yǔ)言被廣泛用于數(shù)據(jù)分析和機(jī)器學(xué)習(xí)。但是,由于python的底層特性,python的運(yùn)行速率低一直被廣泛詬病。其中,numpy和pandas的廣泛使用已經(jīng)將數(shù)據(jù)處理和機(jī)器學(xué)習(xí)的速率提升了幾個(gè)檔次。

但是,隨著數(shù)據(jù)的越來(lái)越多,很多人已經(jīng)不再滿足numpy和pandas的速度,從而退出了一批加速優(yōu)化拓展包。這篇文章主要介紹一個(gè)輕量、但是功能強(qiáng)大的python擴(kuò)展包 ”NumExpr",看看它是如何高效解析數(shù)學(xué)公式的。

NumExpr

NumExpr的使用及其簡(jiǎn)單,只需要將原來(lái)的numpy語(yǔ)句使用雙引號(hào)框起來(lái),并使用numexpr中的evaluate方法調(diào)用即可。

第一步:需要引入 numexpr 和 numpy 擴(kuò)展包;

/`import numexpr as ne

import numpy as np/`



第二步:創(chuàng)建兩個(gè)numpy的array - a 和 b;

a和b兩個(gè)所包含的數(shù)據(jù)個(gè)數(shù)為100萬(wàn)個(gè)。

當(dāng)我們需要執(zhí)行簡(jiǎn)單的加減乘除的時(shí)候,numexpr的效率已經(jīng)得到了很好地體現(xiàn),通過(guò)執(zhí)行 2 * a + 3 * b,如果直接操作,需要3.39 毫秒。但是,如果我們是用ne.evaluate加速,可以將時(shí)間縮短至1.55 毫秒。

numexpr在更加復(fù)雜的數(shù)學(xué)表達(dá)式運(yùn)算中,表現(xiàn)到底如何呢?

當(dāng)我們使用如上所示的數(shù)學(xué)表達(dá)式,正常執(zhí)行需要28.3 ms。而通過(guò)numexpr的加速,只需要3.03 ms。



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

總結(jié):處理數(shù)據(jù)量越大,數(shù)學(xué)計(jì)算越復(fù)雜,則numexpr的加速效果越明顯。



numpy 和 numexpr 比較

我們可以看到,當(dāng)np.array的元素個(gè)數(shù)超過(guò)10e8,加速效果更加顯著。

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

numexpr 多線程加速

numexpr還有一個(gè)重要的加速利器,多線程操作。通過(guò) ne.set/_num/_threads(1) 可以設(shè)置線程的數(shù)量,更多的線程表示程序可以同時(shí)對(duì)數(shù)學(xué)表達(dá)式進(jìn)行計(jì)算。

如上所示,如果我們?cè)O(shè)置單線程,程序運(yùn)行需要13.4 ms。設(shè)置了雙線程,速度則可以提升一倍。

numexpr對(duì)pandas的加速
numexpr的設(shè)計(jì)主要針對(duì)的是numpy。同樣的,我們知道pandas也是基于numpy開(kāi)發(fā)的。自然,numexpr同樣可以被用來(lái)對(duì)pandas加速。

pandas中有一個(gè)eval方法就是運(yùn)用了numexpr,對(duì)pandas代碼進(jìn)行優(yōu)化加速。

當(dāng)我們構(gòu)建幾個(gè)pandas的dataframe,然后對(duì)它們進(jìn)行運(yùn)算的時(shí)候,pd.eval 可以將程序從原先的47.4 ms 加速到17.6 ms。

總結(jié)

通過(guò)以上的實(shí)例,numexpr對(duì)于numpy和pandas的加速是很顯著的,尤其當(dāng)數(shù)據(jù)量比較大和計(jì)算比較復(fù)雜的情況下。同時(shí),numexpr的使用非常簡(jiǎn)單。但是,我們需要注意的是,任何加速工具都會(huì)有局限性的,并不是所有的工作都可以使用numexpr進(jìn)行加速。

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8492

    瀏覽量

    134096
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86194
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    是否可以為RT1060添加HDMI輸出?

    是否可以為 RT1060 添加 HDMI 輸出?我想支持標(biāo)準(zhǔn) 720p 分辨率并使用圖形加速。
    發(fā)表于 04-10 08:04

    的樹莓派跑不快的5個(gè)原因!

    盡管最早的RaspberryPi是作為一種廉價(jià)設(shè)備設(shè)計(jì)的,目的是讓學(xué)生迷上編碼,但超級(jí)流行的SBC系列在性能和功能方面已經(jīng)取得了很大進(jìn)步。現(xiàn)代RPiSBCs配備了更快的內(nèi)核、充足的內(nèi)存和更好的I/O
    的頭像 發(fā)表于 03-27 15:44 ?285次閱讀
    <b class='flag-5'>你</b>的樹莓派跑不快的5個(gè)原因!

    慧能泰USB PD3.2 Type-C控制器HUSB368介紹

    在當(dāng)今智能化時(shí)代,快充技術(shù)發(fā)展迅猛。最開(kāi)始18W、20W就能讓人心動(dòng),后來(lái)60W、80W都覺(jué)得平平無(wú)奇,上百瓦才得勁,本以為用上了120W快充就夠快了,沒(méi)想到還是難以滿足電動(dòng)工具、無(wú)人機(jī)、機(jī)器人等新興場(chǎng)景對(duì)48V高電壓供電及復(fù)雜協(xié)議交互的要求。
    的頭像 發(fā)表于 03-17 17:02 ?504次閱讀
    慧能泰USB PD3.2 Type-C控制器HUSB368介紹

    DAC7718 AVDD供電可以為15V嗎?

    想請(qǐng)教下DAC7718的供電可以為15V么?
    發(fā)表于 11-19 06:25

    想輸入694KHz的時(shí)鐘,輸出117.28MHz的時(shí)鐘,可以為我推薦一款時(shí)鐘芯片嗎?

    我想輸入694KHz的時(shí)鐘,輸出117.28MHz的時(shí)鐘,可以為我推薦一款時(shí)鐘芯片嗎?我看了好多都是輸入最低為5MHz,沒(méi)有找到符合前面要求的芯片,求推薦
    發(fā)表于 11-08 07:24

    springboot的項(xiàng)目如何既要用jar包啟動(dòng),同時(shí)還可以為不同的機(jī)房設(shè)置不同的配置文件

    作者:京東科技 李意文 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內(nèi)容如下: assembly zip dir false ${basedir}/src/bin bin 0755 ${project.build.directory}/${project.build.finalName}.jar lib ${basedir}/../xxx/target/classe
    的頭像 發(fā)表于 10-19 16:48 ?789次閱讀
    springboot的項(xiàng)目如何既要用jar包啟動(dòng),同時(shí)<b class='flag-5'>還可以為</b>不同的機(jī)房設(shè)置不同的配置文件

    可以使用TAS5634做BTL輸出模式,功率在2*100W,負(fù)載可以為兩個(gè)4歐姆的揚(yáng)聲器嗎?

    請(qǐng)問(wèn)我可以使用TAS5634做BTL輸出模式,功率在2*100W,負(fù)載可以為兩個(gè)4歐姆的揚(yáng)聲器嗎?因?yàn)槲铱匆?guī)格書BTL模式只有8歐姆和6歐姆的.
    發(fā)表于 10-15 06:52

    請(qǐng)問(wèn)PGA280的帶寬是多少呀,輸入信號(hào)可以為20kHz嗎?

    您好!請(qǐng)問(wèn)PGA280的帶寬是多少呀,輸入信號(hào)可以為20kHz嗎?
    發(fā)表于 09-26 06:13

    藍(lán)牙人員定位可以為智慧電廠發(fā)展解決哪些問(wèn)題

    電力需求增長(zhǎng)放緩,新能源裝機(jī)比重不斷提高的產(chǎn)業(yè)背景下,搶灘智慧電廠建設(shè)成為企業(yè)管理新的突破點(diǎn)。隨著新型傳感、物聯(lián)網(wǎng)、大數(shù)據(jù)、虛擬現(xiàn)實(shí)、人工智能等新技術(shù)的助力,智慧電廠已經(jīng)進(jìn)入應(yīng)用推廣階段。智慧電廠
    的頭像 發(fā)表于 09-06 11:42 ?466次閱讀
    藍(lán)牙人員定位<b class='flag-5'>可以為</b>智慧電廠發(fā)展解決哪些問(wèn)題

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

    。 我遇到的問(wèn)題是,由于缺乏緩沖內(nèi)存(主機(jī)速度不夠快,因?yàn)樗仨毻瑫r(shí)處理多個(gè) CX3 數(shù)據(jù)流),CX3 有時(shí)會(huì)丟棄一些幀。 這是我目前使用的內(nèi)存映射(我優(yōu)化了一些數(shù)據(jù)區(qū)域,并使用 2 級(jí)引導(dǎo)加載器
    發(fā)表于 07-23 08:29

    可以為XMC 1400系列微控制器使用哪種集成開(kāi)發(fā)環(huán)境?

    我們可以為 XMC 1400 系列微控制器使用哪種集成開(kāi)發(fā)環(huán)境?
    發(fā)表于 07-22 07:41

    通過(guò)I2C PWM IC控制伺服,可以為伺服控制進(jìn)行高優(yōu)先級(jí)中斷嗎?

    () 大約需要 100 毫秒才能完成請(qǐng)求。 我怎樣才能避免那里的事情。 我可以為伺服控制進(jìn)行高優(yōu)先級(jí)中斷嗎? 使用 Arduino IDE。
    發(fā)表于 07-12 06:20

    使用NumPy實(shí)現(xiàn)前饋神經(jīng)網(wǎng)絡(luò)

    要使用NumPy實(shí)現(xiàn)一個(gè)前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Network),我們需要從基礎(chǔ)開(kāi)始構(gòu)建,包括初始化網(wǎng)絡(luò)參數(shù)、定義激活函數(shù)及其導(dǎo)數(shù)、實(shí)現(xiàn)前向傳播、計(jì)算損失函數(shù)、以及實(shí)現(xiàn)
    的頭像 發(fā)表于 07-11 16:30 ?3382次閱讀

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

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

    SolidWorks科研版更快地開(kāi)發(fā)產(chǎn)品創(chuàng)意

    在當(dāng)今競(jìng)爭(zhēng)激烈的市場(chǎng)環(huán)境中,產(chǎn)品創(chuàng)新的速度和質(zhì)量直接決定了企業(yè)的生死存亡。對(duì)于科研人員和設(shè)計(jì)師來(lái)說(shuō),如何能夠快速、準(zhǔn)確地實(shí)現(xiàn)產(chǎn)品創(chuàng)意的轉(zhuǎn)化,是擺在面前的一大挑戰(zhàn)。SolidWorks科研版作為一款
    的頭像 發(fā)表于 06-19 16:49 ?437次閱讀