<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【Python小技巧】Python中有哪些讓你覺得相見恨晚的模塊/庫/函數(shù)?

          共 4143字,需瀏覽 9分鐘

           ·

          2021-07-08 05:41

          【Python小技巧】Python中有哪些讓你覺得相見恨晚的模塊/庫/函數(shù)?



          引言 Introduction


          提到Python的庫,大家可能首先會想到下面幾個:

          • NumPy:用于矩陣計算,機器學(xué)習(xí);

          • pandas:基于NumPy,對標(biāo)Excel/SQL的表格數(shù)據(jù)處理,或者R的Tidyverse;

          • SciPy:科學(xué)計算,對標(biāo)MATLAB;

          • statsmodels:用于計量建模,對標(biāo)R的 AER,或者Stata;

          • skilearn:用于機器學(xué)習(xí)建模;

          • PyTorch/TensorFlow/Keras:用于深度學(xué)習(xí)建模;

          • matplotlib/plotly:用于數(shù)據(jù)可視化,對標(biāo)R的ggplot2;

          • seaborn/Bokeh:高級的/交互式的可視化;

          • turtle:基于游標(biāo)而不是數(shù)據(jù)畫圖,功能更加全面;

          • scrapy/requests/beautiful soup:網(wǎng)絡(luò)爬蟲;

          • NLTK:自然語言處理

          • ...

          但除此以外,Python還有大量功能豐富的庫,比如下面這些:

          • emoji

          • geopy

          • inspect


          當(dāng)然,除了一些有意思的模塊,本文還會一些Python的獨特功能,包括:

          • 列表推導(dǎo)式,list comprehension

          • 匿名函數(shù),lambda function

          • map 映射函數(shù)



          1 表情包庫:emoji


          emoji 模塊可以幫助Python輸出表情符號包/符號。

          # -*- coding: utf-8 -*-
          """
          Created on Fri Jun 18 01:52:59 2021
          @Software: Spyder
          @author: 盲區(qū)行者王


          """


          from emoji import emojize

          emojize(":thumbs_up:")
          Out[19]: ' '


          emojize("Python is fun :red_heart:")
          Out[20]: 'Python is fun ?'


          2 地理數(shù)據(jù)處理模塊:geopy


          官網(wǎng):歡迎使用Geopy文檔!- GeoPy 2.0.0 文檔

          geopy 模塊提供一系列地理編碼服務(wù)的API,讓地址獲取和經(jīng)度、維度、海拔等地理信息處理變得簡單。在此基礎(chǔ)之上,我們可以計算兩個地點的距離。

          先看下如何從維度、經(jīng)度和海拔定義一個位置:

          import geopy

          p1 = geopy.point.Point(41.5, -81.0, 12.3)

          str(p1) ## 查看結(jié)構(gòu)
          Out[31]: '41 30m 0s N, 81 0m 0s W, 12.3km'

          接下來,我們嘗試計算兩地的距離:

          from geopy import distance
          newport_ri = (41.49008, -71.312796) ##定義地點1
          cleveland_oh = (41.499498, -81.695391) ##定義地點2
          distance.distance(newport_ri, cleveland_oh).kilometers ##km為單位


          Out[21]: 866.4554329098687


          3 Python自帶的 inspect


          inspect 模塊可以幫助我們理解Python在運行背后的源代碼,以及類的結(jié)構(gòu)。

          import inspect
          inspect.getsource(inspect.getsource)
          Out[35]: 'def getsource(object):\n    """Return the text of the source code for an object.\n\n    The argument may be a module, class, method, function, traceback, frame,\n    or code object.  The source code is returned as a single string.  An\n    OSError is raised if the source code cannot be retrieved."""\n    lines, lnum = getsourcelines(object)\n    return \'\'.join(lines)\n'


          4 新聞網(wǎng)頁爬取包:newspaper3k


          這個包兼有爬蟲了NLP的功能,可以幫助我們從大量國際出版處中檢索新聞文章,極其對應(yīng)的元數(shù)據(jù)。從新聞文章數(shù)據(jù)中,我們可以檢索具體的人名、關(guān)鍵詞、圖像等等。

          ## 基于Article方法檢索單條新聞


          from newspaper import Article

          url = "https://edition.cnn.com/2021/06/18/china/billion-vaccine-shots-mic-intl-hnk/index.html"


          news = Article(url, language='en')

          news.download() ##下載網(wǎng)頁


          news.parse() ##解析該網(wǎng)頁


          news.title ## 標(biāo)題
          Out[98]: "China's about to administer its billionth coronavirus shot. Yes, you read that right"


          news.text ## 新聞?wù)?                                     
          Out[99]: '(CNN) Editor\'s note: CNN is launching the Meanwhile in China newsletter on June 21, a ##很長,省略。


          news.authors ## 作者
          Out[100]: ['Nectar Gan', 'Laura He']

          news.keywords ## 關(guān)鍵詞,結(jié)果為空
          Out[101]: []

          news.summary ## 摘要
          Out[102]: ''


          news.top_image ## 配圖的URL
          Out[103]: 'https://cdn.cnn.com/cnnnext/dam/assets/210618002412-china-coronavirus-vaccine-0603-super-tease.jpg'


          news.publish_date ## 新聞發(fā)布日期
          Out[104]: datetime.datetime(2021, 6, 18, 0, 0)


          5 CPU和內(nèi)存分析包 Scalene


          官網(wǎng):scalene

          scalene:一個優(yōu)秀的,用于查看CPU、GPU和內(nèi)存運行情況的專用模塊。

          不過在安裝的時候,我搞了半天沒裝好,所以這里給出官網(wǎng)的說明,大家了解一下。


          6 Web可視化包:pyecharts


          這個包和matplotlib等不同指出在于,可以什么方便地制作html格式的圖形。pyecharts還可以進一步和Flask、Django等熱門Web框架集成,并支持基于百度地圖的地理數(shù)據(jù)可視化。

          from pyecharts.charts import Bar

          bargraph = Bar()
          bargraph.add_xaxis(["經(jīng)濟學(xué)", "金融學(xué)", "金融工程", "Stata", "Python"])
          bargraph.add_yaxis("盲區(qū)行者王 同學(xué)", [91, 92, 93, 94, 95])

          render
          bargraph.render()


          7 漂亮簡單的進度條:tqdm


          官網(wǎng):tqdm/tqdm

          tqdm,來自于阿拉伯語“taqaddum”,= progress,進程/進度 的意思。

          通過tqdm,可以查看算法在具體執(zhí)行過程中的進度。尤其在一些運行時間很長的算法當(dāng)中(比如冒泡排序100萬個整數(shù)),我們可以實時查看算法運行完成的比例。

          演示代碼:

          from tqdm import tnrange, tqdm_notebook
          from time import sleep

          for i in tqdm_notebook(tnrange(4), desc = "1層的循環(huán)"):
          for j in tqdm_notebook(tnrange(100), desc = "2層的循環(huán)", leave = False):
          sleep(0.02)


          8 列表推導(dǎo) List Comprehension


          列表推導(dǎo)式和下面要介紹的匿名函數(shù)有點像,兩者可以進行對比學(xué)習(xí)。它們可以大幅提升Python的效率。

          a = [1, 2, 3, 4, 5]

          b = [x**3 for x in a] ##列表推導(dǎo)式


          b
          Out[49]: [1, 8, 27, 64, 125]

          c = [x**3 for x in a if x%2 == 0]

          c
          Out[51]: [8, 64]


          9 lambda 函數(shù)和 map 映射


          lambda 函數(shù)也叫匿名函數(shù),是一種不同于普通函數(shù)的函數(shù)。通過map() 函數(shù),lambda函數(shù)生成的新元素可以轉(zhuǎn)換為列表或元組等對象。

          a = [1, 2, 3, 4, 5]

          b = map(lambda a:a**3, a)

          list(b) ##轉(zhuǎn)換為列表
          Out[46]: [1, 8, 27, 64, 125]
          關(guān)
          一鍵三連~~
          關(guān)注小編~




          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.aaa| 日本欧美久久久久免费播放网 | 无码窝在线观看 | 久久人妻熟女中文字幕av蜜芽 | 人人操,人人摸,人人透, |