国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    8553

    瀏覽量

    136934
  • python
    +關注

    關注

    57

    文章

    4876

    瀏覽量

    90025
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于 Firefly RK1828 開發套件的 OpenClaw 完全本地化部署

    近日,OpenClaw(Clawdbot)在技術圈大火。簡單來說,OpenClaw是一個能讓AI自主執行任務的工具,不僅僅是對話,它還可以操作的電腦、調用各種API、處理文件,甚至能跨平臺完成復雜
    的頭像 發表于 02-06 17:34 ?4547次閱讀
    基于 Firefly RK1828 開發套件的 OpenClaw 完全本地化部署

    調試RK3588必看!這個臨時設備樹文件,藏著要的所有配置答案

    ”——rk3588-evb7-v11-linux.dtb.dts.tmp。不少人以為它是編譯過程的“臨時垃圾”,看完這篇就知道:它其實是解決硬件適配、內核啟動問題的“調試鑰匙”。
    的頭像 發表于 02-03 15:55 ?1076次閱讀
    調試RK3588必看!這個臨時設備樹文件,藏著<b class='flag-5'>你</b>要的所有配置答案

    RT-Thread軟件包,RyanMqtt 2.0 發布,全面重構:更輕、更快、更安全、更可靠 | 技術集結

    RyanMqtt2.0RT-Thread社區精品軟件包RyanMqtt發布2.0新版本!更輕、更快、更安全、更可靠,為的物聯網連接注入新動力。
    的頭像 發表于 12-09 18:27 ?5819次閱讀
    RT-Thread軟件包,RyanMqtt 2.0 發布,全面重構:更輕、<b class='flag-5'>更快</b>、更安全、更可靠 | 技術集結

    BNC線束 | 精準傳輸,讓信號更快一步

    通信、測試、工業控制 還是 科研實驗, 德索都能為提供值得信賴的 BNC線束解決方案 —— 讓信號更穩,讓數據更快
    的頭像 發表于 11-13 16:59 ?716次閱讀
    BNC線束 | 精準傳輸,讓信號<b class='flag-5'>更快</b>一步

    除了云端,電能質量在線監測裝置的數據還可以存儲在哪里?

    除了云端,電能質量在線監測裝置的數據還可存儲在 裝置內置存儲、外接存儲設備、本地服務器 / 數據中心 三類本地存儲載體中,不同方式的容量、可靠性、適用場景差異較大,需結合需求(如短期備份、長期集中
    的頭像 發表于 10-30 09:48 ?259次閱讀

    為什么開關二極管速度不夠快

    在電子電路設計中,二極管不僅用作整流和限幅,還常常作為開關元件應用在高頻和高速電路里。此類二極管被稱為開關二極管。它們的核心特性是能夠快速完成導通與關斷,從而不影響電路的工作速度。然而,在實際應用中
    的頭像 發表于 09-10 10:01 ?679次閱讀
    為什么開關二極管速度不<b class='flag-5'>夠快</b>?

    yolov11轉kmodel,numpy是要降級為1.x嗎?

    python3.9,yolo是最新的穩定版,和yolo捆綁pip安裝的numpy是2.0.1 錯誤日志
    發表于 08-11 08:16

    全新原裝福祿克FLUKE754過程校驗儀

    捕獲數據。當然,它還可幫助您滿足 ISO 9000、FDA、EPA 和 OSHA 法規等多項嚴格標準。 福祿克 754 記錄過程校準儀-HART:更智能。更快捷。 新環境拍照苛刻環境下更易使用 HART
    發表于 07-24 10:45

    生活處處有晶振,正被溫柔“控場”

    一個清晨,不知不覺已經依賴了幾十顆默默工作的晶振。它們如同精準的隱形齒輪,驅動著我們身邊幾乎每一件電子設備。石英晶振,這個看似陌生的名字,其實早已融入現代生活的
    的頭像 發表于 07-24 09:37 ?519次閱讀
    生活處處有晶振,<b class='flag-5'>你</b>正被溫柔“控場”

    IBM應用集成平臺可以為企業提供哪些功能

    2025年被業界視為 AI Agent 元年,很多企業都希望去建設自己的 AI Agent。同時,企業也在積極探索,如何將 AI 與企業已有的應用進行有效的聯接。
    的頭像 發表于 06-03 10:17 ?880次閱讀

    粘接聚酰亞胺PI膜除了使用PI膜專用UV膠粘接,還可以使用熱固化環氧膠來解決!

    粘接聚酰亞胺PI膜可以使用PI膜專用UV膠粘接,但使用UV膠粘接時,需要粘接材料至少有一方要透UV紫外光方可,如不能透UV光,那么粘接PI這種難于粘接的材料時,還可以使用熱固化環氧膠來解決!熱固化環
    的頭像 發表于 05-07 09:11 ?1476次閱讀
    粘接聚酰亞胺PI膜除了使用PI膜專用UV膠粘接,<b class='flag-5'>還可以</b>使用熱固化環氧膠來解決!

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

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

    的樹莓派跑不快的5個原因!

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

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

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

    速度更快,傳輸更穩定的工業相機COF接口

    工業相機的數據接口之一COF接口,速度更快,傳輸更穩定的。
    的頭像 發表于 03-10 17:32 ?1141次閱讀
    速度<b class='flag-5'>更快</b>,傳輸更穩定的工業相機COF接口