91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python numexpr怎么使用

發布時間:2021-12-27 10:32:51 來源:億速云 閱讀:232 作者:iii 欄目:大數據

本篇內容介紹了“python numexpr怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

開篇

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

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

NumExpr

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

python numexpr怎么使用

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

import numexpr as ne

import numpy as np

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

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

python numexpr怎么使用

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

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

python numexpr怎么使用

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

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

python numexpr怎么使用

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

python numexpr怎么使用

numpy 和 numexpr 比較

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

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

numexpr 多線程加速

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

python numexpr怎么使用

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

numexpr對pandas的加速

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

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

python numexpr怎么使用

python numexpr怎么使用

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

“python numexpr怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

当涂县| 汕头市| 靖州| 广饶县| 嘉兴市| 东辽县| 木兰县| 隆子县| 兴宁市| 麻阳| 东至县| 顺义区| 陆丰市| 松桃| 含山县| 普兰县| 邢台市| 卢湾区| 亚东县| 芮城县| 松江区| 睢宁县| 青阳县| 广饶县| 依安县| 林甸县| 固阳县| 桦南县| 宁晋县| 张掖市| 内江市| 石嘴山市| 泸定县| 娄底市| 绩溪县| 桦甸市| 辛集市| 奎屯市| 大竹县| 杭锦后旗| 安多县|