乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      這些最好用卻最不被看好的Python庫,你知道多少?

       江海博覽 2023-12-05 發(fā)布于安徽
      讀芯術(shù)
      讀芯術(shù)
      2019-12-1 12:30優(yōu)質(zhì)科技領(lǐng)域創(chuàng)作者

      全文共2285字,預(yù)計(jì)學(xué)習(xí)時(shí)長7分鐘

      這些最好用卻最不被看好的Python庫,你知道多少?

      來源:Pexels

      生活中,常常有一些人,明明很有能力,卻不被身邊人看好。

      是金子總能發(fā)光,這句話放在現(xiàn)實(shí)生活中,其實(shí)并不完全適用,人口眾多,不乏有才之人,想要成功就需要一個(gè)一鳴驚人的機(jī)會(huì)。

      Python也是。

      Python中有很多現(xiàn)成的性能不錯(cuò)的庫。collections就是其中一個(gè)。

      collections模塊提供了“高性能的容器數(shù)據(jù)類型”,是通用容器字典、列表、集合和元組的完美替代。

      但卻常常被人忽視或者看輕。

      今天,小芯就將努力當(dāng)一個(gè)“好伯樂”,簡潔明了地為大家介紹那些不被看好的Python庫,發(fā)掘出它們的無限潛能。

      在本文中將會(huì)向讀者仔細(xì)介紹其中的三種數(shù)據(jù)類型,相信在閱讀完本文后,大家一定會(huì)疑惑自己之前是如何在沒有這些庫的情況下完成編程。

      這些最好用卻最不被看好的Python庫,你知道多少?

      來源:Pexels

      Counter

      Counter的名字很貼切——它的主要功能就是計(jì)數(shù)。這聽起來很簡單,但事實(shí)證明,數(shù)據(jù)科學(xué)家經(jīng)常不得不進(jìn)行計(jì)數(shù),所以它十分有效。

      有幾種方法可以實(shí)現(xiàn)初始化,但筆者通常會(huì)設(shè)置一個(gè)如下圖的值列表

      from collections import Counter

      ages = [22, 22, 25, 25, 30, 24, 26, 24, 35, 45, 52, 22, 22, 22, 25, 16, 11, 15, 40, 30]

      value_counts = Counter(ages)

      print(value_counts.most_common())

      counter.py hosted with ? by GitHub

      如果讀者要運(yùn)行上述代碼(建議使用這個(gè)高效率工具),就會(huì)得到以下輸出:

      [(22, 5), (25, 3), (24, 2), (30,2), (35, 1), (40, 1), (11, 1), (45, 1), (15, 1), (16, 1), (52, 1), (26, 1)]

      按最常見的順序排列的元組列表,其中元組中首先包含值,然后是計(jì)數(shù)。所以可以迅速地從中看到22歲是最常見的年齡,頻率為5次,還有年齡只出現(xiàn)了一次。完成了!

      DefaultDict

      這是筆者的最愛之一。DefaultDict是在首次遇到每個(gè)鍵時(shí)使用默認(rèn)值初始化的多功能字典。接下來是一個(gè)實(shí)例

      From collections import defaultdict

      my_default_dict = defaultdict(int)

      for letter in'the red fox ran as fast as it could':

      my_default_dict[letter] +=1

      print(my_default_dict)

      defaultdict.py hosted with ? by GitHub

      返回

      defaultdict(<type 'int'>,{'a': 4, ' ': 8, 'c': 1, 'e': 2, 'd': 2, 'f': 2, 'i': 1, 'h': 1, 'l': 1, 'o':2, 'n': 1, 's': 3, 'r': 2, 'u': 1, 't': 3, 'x': 1})

      通常,當(dāng)嘗試訪問一個(gè)不在字典中的值時(shí),就會(huì)出現(xiàn)顯示錯(cuò)誤的界面。還有其他方法可以處理這個(gè)問題,但是它會(huì)添加一些多余的代碼當(dāng)用戶希望使用默認(rèn)值的時(shí)候。在上面的例子中,用int初始化了defauldict,這意味著在第一次訪問時(shí),將它假設(shè)為0,所以可以很容易地對(duì)所有字符進(jìn)行計(jì)數(shù),簡潔明了。另一個(gè)常見的初始化是list,它允許用戶在第一次訪問時(shí)立即開始附加值。

      NamedTuple

      NamedTuple對(duì)于數(shù)據(jù)科學(xué)家的意義至關(guān)重要。接下來這個(gè)場(chǎng)景聽起來可能十分熟悉, 由于喜歡list,所以正在進(jìn)行特征工程,只需將這些特征添加到相對(duì)應(yīng)的類中,然后將其輸入到機(jī)器學(xué)習(xí)模型中。當(dāng)?shù)玫綌?shù)百個(gè)特征時(shí),情況就會(huì)變得十分混亂。對(duì)于具體用到的特性,或引用了列表中的哪個(gè)索引模棱兩可。更糟糕的是,當(dāng)其他人查看代碼時(shí),他們面對(duì)這一大堆的特性根本無從下手。

      輸入NamedTuples來解決這個(gè)窘境。

      僅僅只需要多寫幾行代碼,混亂的列表立刻就會(huì)恢復(fù)秩序。如下圖所示

      from collections import namedtuple

      Features = namedtuple('Features', ['age', 'gender', 'name'])

      row = Features(age=22, gender='male', name='Alex')

      print(row.age)

      namedtuple.py hosted with ? by GitHub

      如果要運(yùn)行這段代碼,它就會(huì)印出“22”的字樣,即特征用戶存儲(chǔ)在行中的年齡。簡直不可思議!現(xiàn)在,大可不必使用索引來訪問,取而代之的是一些易于理解的名稱,這大大提高了代碼的可維護(hù)性和整潔度。

      這些功能都有助于編寫更加簡潔的代碼。

      這些最好用卻最不被看好的Python庫,你知道多少?

      來源:Pexels

      看到這里,讀者應(yīng)該對(duì)collections庫和它的一些很棒的功能有了一些了解,趕緊使用起來吧!

      你會(huì)驚訝地發(fā)現(xiàn)它們很多隱藏的用處,以及它給你的代碼帶來的質(zhì)的改變。

      盡情享受它們帶來的便利!

      動(dòng)動(dòng)你的小手手,一起來試試吧~

      這些最好用卻最不被看好的Python庫,你知道多少?
      這些最好用卻最不被看好的Python庫,你知道多少?

      如轉(zhuǎn)載,請(qǐng)后臺(tái)留言,遵守轉(zhuǎn)載規(guī)范

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多