1. 這些Python 庫,這么好用知道的人卻不多

        共 4039字,需瀏覽 9分鐘

         ·

        2020-08-04 00:34


        原文地址:https://dwz.cn/FBj1Ktxv
        譯文鏈接:https://dwz.cn/moEU7xzr


        Python 是一個很棒的語言。它是世界上發(fā)展最快的編程語言之一。它一次又一次地證明了在開發(fā)人員職位中和跨行業(yè)的數(shù)據(jù)科學職位中的實用性。整個 Python 及其庫的生態(tài)系統(tǒng)使它成為全世界用戶(初學者和高級用戶)的合適選擇。它的成功和流行的原因之一是它強大的第三方庫的集合,這些庫使它可以保持活力和高效。
        在本文中,我們會研究一些用于數(shù)據(jù)科學任務(wù)的 Python 庫,而不是常見的比如?panda、scikit-learn 和 matplotlib 等的庫。盡管像?panda 和 scikit-learn?這樣的庫,是在機器學習任務(wù)中經(jīng)常出現(xiàn)的,但是了解這個領(lǐng)域中的其它 Python 產(chǎn)品總是很有好處的。

        Wget

        從網(wǎng)絡(luò)上提取數(shù)據(jù)是數(shù)據(jù)科學家的重要任務(wù)之一。Wget?是一個免費的實用程序,可以用于從網(wǎng)絡(luò)上下載非交互式的文件。它支持 HTTP、HTTPS 和 FTP 協(xié)議,以及通過 HTTP 的代理進行文件檢索。由于它是非交互式的,即使用戶沒有登錄,它也可以在后臺工作。所以下次當你想要下載一個網(wǎng)站或者一個頁面上的所有圖片時,wget?可以幫助你。

        安裝:

        $ pip install wget

        例子:

        import wget
        url = 'http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'

        filename = wget.download(url)
        100% [................................................] 3841532 / 3841532

        filename
        'razorback.mp3'

        Pendulum

        對于那些在 python 中處理日期時間時會感到沮喪的人來說,Pendulum 很適合你。它是一個簡化日期時間操作的 Python 包。它是 Python 原生類的簡易替代。請參閱文檔深入學習。

        安裝:

        $ pip install pendulum

        例子:

        import pendulum

        dt_toronto = pendulum.datetime(2012, 1, 1, tz='America/Toronto')
        dt_vancouver = pendulum.datetime(2012, 1, 1, tz='America/Vancouver')

        print(dt_vancouver.diff(dt_toronto).in_hours())

        3

        imbalanced-learn

        可以看出,當每個類的樣本數(shù)量基本相同時,大多數(shù)分類算法的效果是最好的,即需要保持數(shù)據(jù)平衡。但現(xiàn)實案例中大多是不平衡的數(shù)據(jù)集,這些數(shù)據(jù)集對機器學習算法的學習階段和后續(xù)預測都有很大影響。幸運的是,這個庫就是用來解決此問題的。它與?scikit-learn?兼容,是?scikit-lear-contrib?項目的一部分。下次當你遇到不平衡的數(shù)據(jù)集時,請嘗試使用它。

        安裝:

        pip install -U imbalanced-learn

        # 或者

        conda install -c conda-forge imbalanced-learn

        例子:

        使用方法和例子請參考文檔。

        FlashText

        在 NLP 任務(wù)中,清理文本數(shù)據(jù)往往需要替換句子中的關(guān)鍵字或從句子中提取關(guān)鍵字。通常,這種操作可以使用正則表達式來完成,但是如果要搜索的術(shù)語數(shù)量達到數(shù)千個,這就會變得很麻煩。Python 的?FlashText?模塊是基于 FlashText 算法為這種情況提供了一個合適的替代方案。FlashText 最棒的一點是,不管搜索詞的數(shù)量如何,運行時間都是相同的。你可以在這里了解更多內(nèi)容。

        安裝:

        $ pip install flashtext

        例子:

        提取關(guān)鍵字
        from flashtext import KeywordProcessor
        keyword_processor = KeywordProcessor()

        # keyword_processor.add_keyword(, )

        keyword_processor.add_keyword('Big Apple', 'New York')
        keyword_processor.add_keyword('Bay Area')
        keywords_found = keyword_processor.extract_keywords('I love Big Apple and Bay Area.')

        keywords_found
        ['New York', 'Bay Area']
        替換關(guān)鍵字
        keyword_processor.add_keyword('New Delhi', 'NCR region')

        new_sentence = keyword_processor.replace_keywords('I love Big Apple and new delhi.')

        new_sentence
        'I love New York and NCR region.'
        更多實用案例,請參考官方文檔。

        Fuzzywuzzy

        這個庫的名字聽起來很奇怪,但是在字符串匹配方面,fuzzywuzzy 是一個非常有用的庫??梢院芊奖愕貙崿F(xiàn)計算字符串匹配度、令牌匹配度等操作,也可以很方便地匹配保存在不同數(shù)據(jù)庫中的記錄。

        安裝:

        $ pip install fuzzywuzzy

        例子:

        from fuzzywuzzy import fuzz
        from fuzzywuzzy import process

        # 簡單匹配度

        fuzz.ratio("this is a test", "this is a test!")
        97

        # 模糊匹配度
        fuzz.partial_ratio("this is a test", "this is a test!")
        100
        更多有趣例子可以在 GitHub 倉庫找到。

        PyFlux

        時間序列分析是機器學習領(lǐng)域中最常見的問題之一。PyFlux?是 Python 中的一個開源庫,它是為處理時間序列問題而構(gòu)建的。該庫擁有一系列優(yōu)秀的現(xiàn)代時間序列模型,包括但不限于?ARIMA、GARCH?和?VAR?模型。簡而言之,PyFlux 為時間序列建模提供了一種概率方法。值得嘗試一下。

        安裝

        pip install pyflux

        例子

        詳細用法和例子請參考官方文檔。

        Ipyvolume

        結(jié)果展示也是數(shù)據(jù)科學中的一個重要方面。能夠?qū)⒔Y(jié)果進行可視化將具有很大優(yōu)勢。IPyvolume 是一個可以在 Jupyter notebook 中可視化三維體和圖形(例如三維散點圖等)的 Python 庫,并且只需要少量配置。但它目前還是 1.0 之前的版本階段。用一個比較恰當?shù)谋扔鱽斫忉尵褪牵篒Pyvolume 的?volshow?對于三維數(shù)組就像 matplotlib 的?imshow?對于二維數(shù)組一樣好用。可以在這里獲取更多。
        使用 pip
        $ pip install ipyvolume

        使用 Conda/Anaconda
        $ conda install -c conda-forge ipyvolume

        例子

        • 動畫


        • 體繪制

        Dash

        Dash 是一個高效的用于構(gòu)建 web 應(yīng)用程序的 Python 框架。它是在 Flask、Plotly.js 和 React.js 基礎(chǔ)上設(shè)計而成的,綁定了很多比如下拉框、滑動條和圖表的現(xiàn)代 UI 元素,你可以直接使用 Python 代碼來寫相關(guān)分析,而無需再使用 javascript。Dash 非常適合構(gòu)建數(shù)據(jù)可視化應(yīng)用程序。然后,這些應(yīng)用程序可以在 web 瀏覽器中呈現(xiàn)。用戶指南可以在這里獲取。

        安裝

        pip install dash==0.29.0 # 核心 dash 后端
        pip install dash-html-components==0.13.2 # HTML 組件
        pip install dash-core-components==0.36.0 # 增強組件
        pip install dash-table==3.1.3 # 交互式 DataTable 組件(最新!)

        例子

        下面的例子展示了一個具有下拉功能的高度交互式圖表。當用戶在下拉菜單中選擇一個值時,應(yīng)用程序代碼將動態(tài)地將數(shù)據(jù)從 Google Finance 導出到 panda DataFrame。源碼在這里

        Gym

        OpenAI?的 Gym 是一款用于增強學習算法的開發(fā)和比較工具包。它兼容任何數(shù)值計算庫,如 TensorFlow 或 Theano。Gym 庫是測試問題集合的必備工具,這個集合也稱為環(huán)境 —— 你可以用它來開發(fā)你的強化學習算法。這些環(huán)境有一個共享接口,允許你進行通用算法的編寫。

        安裝

        pip install gym
        例子
        這個例子會運行?CartPole-v0?環(huán)境中的一個實例,它的時間步數(shù)為 1000,每一步都會渲染整個場景。

        你可以在這里獲取其它環(huán)境的相關(guān)資料。

        總結(jié)

        如果你知道其它庫,可以添加到列表中來,請在下面的評論中提一下。另外別忘了先嘗試運行一下它們。


        END



        若覺得文章對你有幫助,隨手轉(zhuǎn)發(fā)分享,也是我們繼續(xù)更新的動力。


        長按二維碼,掃掃關(guān)注哦

        ?「C語言中文網(wǎng)」官方公眾號,關(guān)注手機閱讀教程??



        推薦關(guān)注

        關(guān)注公號

        Python開發(fā)與大數(shù)據(jù)人工智能

        因為關(guān)注后即可得算法小白資料大全


        點擊“閱讀原文”,領(lǐng)取 2020 年最新免費技術(shù)資料大全


        瀏覽 60
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 性爱福利导航 | 操逼的片 | 国产熟女性爱视频 | 少妇口述刺激的偷人经历 | 日韩乱色 |