最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pandas探索之高性能函數(shù)eval和query解析

 更新時(shí)間:2017年10月28日 11:13:32   作者:飯粒兒  
這篇文章主要介紹了Pandas探索之高性能函數(shù)eval和query解析,小編覺得還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。

Python Data Analysis Library 或 pandas 是基于NumPy 的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas 納入了大量庫和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。你很快就會(huì)發(fā)現(xiàn),它是使Python成為強(qiáng)大而高效的數(shù)據(jù)分析環(huán)境的重要因素之一。

相較于 Python 的內(nèi)置函數(shù), Pandas 庫為我們提供了一系列性能更高的數(shù)據(jù)處理函數(shù),本節(jié)將向大家介紹 Pandas 庫中的高性能函數(shù) eval 與 query:

在 Python 中,我們可以用很多種的方法來實(shí)現(xiàn)同樣的目標(biāo),例如實(shí)現(xiàn)兩個(gè)數(shù)組的相加:

import numpy as np 
rng = np.random.RandomState(42) 
x = rng.rand(1E6) 
y = rng.rand(1E6) 
%timeit x + y 
100 loops, best of 3: 3.39 ms per loop 

利用 Numpy 中的 fromiter 函數(shù)我們可以得到相同的一維數(shù)組,然而我們發(fā)現(xiàn),這個(gè)語句的性能并不比內(nèi)置的數(shù)組加法好。

%timeit np.fromiter((xi + yi for xi, yi in zip(x, y)), 
dtype=x.dtype, count=len(x)) 
1 loop, best of 3: 266 ms per loop 

再比如,進(jìn)行某一項(xiàng)條件的判斷:

mask = (x > 0.5) & (y < 0.5) 
tmp1 = (x > 0.5) 
tmp2 = (y < 0.5) 
mask = tmp1 & tmp2 

Numpy 庫中的函數(shù) allclose 用于判斷兩個(gè)數(shù)組是否相等,我們可以看到,使用 numexpr 庫中的 evaluate 函數(shù)同樣可以實(shí)現(xiàn) mask 中的條件判斷。

import numexpr 
mask_numexpr = numexpr.evaluate('(x > 0.5) & (y < 0.5)') 
np.allclose(mask, mask_numexpr) 
True 

面對(duì)同樣的問題,Pandas 庫為我們提供了更高性能的解決方案, eval 函數(shù)能夠?qū)⑻囟ㄐ问降淖址D(zhuǎn)換為對(duì)應(yīng)含義的邏輯判斷或運(yùn)算,比 Python 的內(nèi)置函數(shù)具有更好的算法效率:

import pandas as pd 
nrows, ncols = 100000, 100 
rng = np.random.RandomState(42) 
df1, df2, df3, df4 = (pd.DataFrame(rng.rand(nrows, ncols)) 
for i in range(4)) 
%timeit df1 + df2 + df3 + df4 
10 loops, best of 3: 87.1 ms per loop 
%timeit pd.eval('df1 + df2 + df3 + df4') 
10 loops, best of 3: 42.2 ms per loop 
np.allclose(df1 + df2 + df3 + df4, 
pd.eval('df1 + df2 + df3 + df4')) 
True 

可以看到,eval 函數(shù)實(shí)現(xiàn)了等價(jià)的計(jì)算,并且具有更高的性能。除了加法運(yùn)算,Pandas 的函數(shù) eval 還能幫助我們實(shí)現(xiàn)其他多種復(fù)雜的邏輯判斷或計(jì)算:

總結(jié)

以上就是本文關(guān)于Pandas探索之高性能函數(shù)eval和query解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Python探索之URL Dispatcher實(shí)例詳解Python編程之Re模塊下的函數(shù)介紹等,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • Jupyter Notebook中%time和%timeit的使用詳解

    Jupyter Notebook中%time和%timeit的使用詳解

    本文主要介紹了Jupyter Notebook中%time和%timeit的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python獲取當(dāng)前時(shí)間的方法

    Python獲取當(dāng)前時(shí)間的方法

    這篇文章主要介紹了Python獲取當(dāng)前時(shí)間的方法,有需要的朋友可以參考一下
    2014-01-01
  • Python實(shí)現(xiàn)進(jìn)度條和時(shí)間預(yù)估的示例代碼

    Python實(shí)現(xiàn)進(jìn)度條和時(shí)間預(yù)估的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)進(jìn)度條和時(shí)間預(yù)估的代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python實(shí)現(xiàn)隨機(jī)游走的示例代碼

    Python實(shí)現(xiàn)隨機(jī)游走的示例代碼

    隨機(jī)游走是一個(gè)數(shù)學(xué)對(duì)象,稱為隨機(jī)或隨機(jī)過程,它描述了一條路徑,該路徑由一些數(shù)學(xué)空間上的一系列隨機(jī)步驟組成,下面我們就來學(xué)習(xí)一下Python如何實(shí)現(xiàn)隨機(jī)游走的吧
    2023-12-12
  • python用PyInstaller打包成windows可執(zhí)行的exe(細(xì)致版)

    python用PyInstaller打包成windows可執(zhí)行的exe(細(xì)致版)

    PyInstaller的基本功能是將Python腳本打包成可執(zhí)行文件,這意味著用戶無需安裝Python環(huán)境,就能運(yùn)行打包后的程序,這篇文章主要介紹了python如何用PyInstaller打包成windows可執(zhí)行exe的相關(guān)資料,需要的朋友可以參考下
    2025-04-04
  • 利用PyTorch實(shí)現(xiàn)VGG16教程

    利用PyTorch實(shí)現(xiàn)VGG16教程

    這篇文章主要介紹了利用PyTorch實(shí)現(xiàn)VGG16教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python制作動(dòng)態(tài)詞頻條形圖的全過程

    Python制作動(dòng)態(tài)詞頻條形圖的全過程

    說起動(dòng)態(tài)圖表,最火的莫過于動(dòng)態(tài)條形圖了,下面這篇文章主要給大家介紹了關(guān)于Python制作動(dòng)態(tài)詞頻條形圖的全過程,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • Python使用FastParquet庫處理Parquet文件的方法

    Python使用FastParquet庫處理Parquet文件的方法

    在大數(shù)據(jù)時(shí)代,數(shù)據(jù)存儲(chǔ)和處理的效率至關(guān)重要,Parquet作為一種列式存儲(chǔ)格式,因其高效的壓縮和編碼方案,成為大數(shù)據(jù)處理中的熱門選擇,本文將深入探討FastParquet庫的使用,幫助讀者掌握如何利用這一工具高效處理Parquet文件,需要的朋友可以參考下
    2025-02-02
  • Python連接Oracle數(shù)據(jù)庫的操作指南

    Python連接Oracle數(shù)據(jù)庫的操作指南

    Oracle數(shù)據(jù)庫是一種強(qiáng)大的企業(yè)級(jí)關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),而Python是一門流行的編程語言,兩者的結(jié)合可以提供出色的數(shù)據(jù)管理和分析能力,本教程將詳細(xì)介紹如何在Python中連接Oracle數(shù)據(jù)庫,并演示常見的數(shù)據(jù)庫任務(wù),需要的朋友可以參考下
    2023-11-11
  • Python實(shí)現(xiàn)爬取并分析電商評(píng)論

    Python實(shí)現(xiàn)爬取并分析電商評(píng)論

    這篇文章主要介紹了Python實(shí)現(xiàn)爬取并分析電商評(píng)論,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評(píng)論

麻江县| 蛟河市| 海淀区| 图们市| 行唐县| 慈溪市| 舒城县| 安义县| 长寿区| 镇宁| 佳木斯市| 九台市| 扎赉特旗| 滨州市| 潮州市| 长寿区| 宜昌市| 神农架林区| 绩溪县| 绥宁县| 东台市| 仪征市| 阿鲁科尔沁旗| 临清市| 呼和浩特市| 乌拉特前旗| 莱芜市| 新密市| 马鞍山市| 南丰县| 周口市| 克什克腾旗| 旅游| 仲巴县| 保康县| 阜宁县| 宜兰市| 格尔木市| 沅陵县| 新绛县| 荆门市|