<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>

          Algorithms,最全的Python算法倉(cāng)庫(kù)!

          共 2117字,需瀏覽 5分鐘

           ·

          2022-06-10 03:35

          學(xué)習(xí)編程、學(xué)習(xí)Python最好的方式就是練習(xí),哪怕是新手,只要不斷地敲代碼輸出,肯定會(huì)有神效。

          Python的練手項(xiàng)目很多,特別是Github上,建議不管新手、老司機(jī)都去看看。

          這里推薦給大家一個(gè)Gitthub上練習(xí)的項(xiàng)目,算法倉(cāng)庫(kù)-algorithms。

          https://github.com/keon/algorithms

          這里面集合眾多核心算法的Python實(shí)現(xiàn),比如排序、圖計(jì)算、回溯、隊(duì)列、流計(jì)算、堆、搜索、壓縮等等。

          該倉(cāng)庫(kù)支持第三方庫(kù)安裝,在python中進(jìn)行調(diào)用,非常方便。

          首先使用pip進(jìn)行安裝:

          pip3?install?algorithms

          然后導(dǎo)入相關(guān)模塊進(jìn)行調(diào)用,比如sort模塊里的merge_sort歸并排序算法。

          from?algorithms.sort?import?merge_sort

          if?__name__?==?"__main__":
          ????my_list?=?[1,?8,?3,?5,?6]
          ????my_list?=?merge_sort(my_list)
          ????print(my_list)

          舉幾個(gè)常見的算法案例。

          1、排序算法-桶排序

          def?bucket_sort(arr):
          ????'''?Bucket?Sort
          ????????Complexity:?O(n^2)
          ????????The?complexity?is?dominated?by?nextSort
          ????'''

          ????#?The?number?of?buckets?and?make?buckets
          ????num_buckets?=?len(arr)
          ????buckets?=?[[]?for?bucket?in?range(num_buckets)]
          ????#?Assign?values?into?bucket_sort
          ????for?value?in?arr:
          ????????index?=?value?*?num_buckets?//?(max(arr)?+?1)
          ????????buckets[index].append(value)
          ????#?Sort
          ????sorted_list?=?[]
          ????for?i?in?range(num_buckets):
          ????????sorted_list.extend(next_sort(buckets[i]))
          ????return?sorted_list

          def?next_sort(arr):
          ????#?We?will?use?insertion?sort?here.
          ????for?i?in?range(1,?len(arr)):
          ????????j?=?i?-?1
          ????????key?=?arr[i]
          ????????while?arr[j]?>?key?and?j?>=?0:
          ????????????arr[j+1]?=?arr[j]
          ????????????j?=?j?-?1
          ????????arr[j?+?1]?=?key
          ????return?arr

          2、機(jī)器學(xué)習(xí)-最近鄰插值法

          import?math

          def?distance(x,y):
          ????"""[summary]
          ????HELPER-FUNCTION
          ????calculates?the?(eulidean)?distance?between?vector?x?and?y.

          ????Arguments:
          ????????x?{[tuple]}?--?[vector]
          ????????y?{[tuple]}?--?[vector]
          ????"""

          ????assert?len(x)?==?len(y),?"The?vector?must?have?same?length"
          ????result?=?()
          ????sum?=?0
          ????for?i?in?range(len(x)):
          ????????result?+=?(x[i]?-y[i],)
          ????for?component?in?result:
          ????????sum?+=?component**2
          ????return?math.sqrt(sum)

          def?nearest_neighbor(x,?tSet):
          ????"""[summary]
          ????Implements?the?nearest?neighbor?algorithm

          ????Arguments:
          ????????x?{[tupel]}?--?[vector]
          ????????tSet?{[dict]}?--?[training?set]

          ????Returns:
          ????????[type]?--?[result?of?the?AND-function]
          ????"""

          ????assert?isinstance(x,?tuple)?and?isinstance(tSet,?dict)
          ????current_key?=?()
          ????min_d?=?float('inf')
          ????for?key?in?tSet:
          ????????d?=?distance(x,?key)
          ????????if?d?????????????min_d?=?d
          ????????????current_key?=?key
          ????return?tSet[current_key]

          3、字符串解碼編碼

          #?Implement?the?encode?and?decode?methods.

          def?encode(strs):
          ????"""Encodes?a?list?of?strings?to?a?single?string.
          ????:type?strs:?List[str]
          ????:rtype:?str
          ????"""

          ????res?=?''
          ????for?string?in?strs.split():
          ????????res?+=?str(len(string))?+?":"?+?string
          ????return?res

          def?decode(s):
          ????"""Decodes?a?single?string?to?a?list?of?strings.
          ????:type?s:?str
          ????:rtype:?List[str]
          ????"""

          ????strs?=?[]
          ????i?=?0
          ????while?i?????????index?=?s.find(":",?i)
          ????????size?=?int(s[i:index])
          ????????strs.append(s[index+1:?index+1+size])
          ????????i?=?index+1+size
          ????return?strs

          4、直方分布

          def?get_histogram(input_list:?list)?->?dict:
          ????"""
          ????Get?histogram?representation
          ????:param?input_list:?list?with?different?and?unordered?values
          ????:return?histogram:?dict?with?histogram?of?input_list
          ????"""

          ????#?Create?dict?to?store?histogram
          ????histogram?=?{}
          ????#?For?each?list?value,?add?one?to?the?respective?histogram?dict?position
          ????for?i?in?input_list:
          ????????histogram[i]?=?histogram.get(i,?0)?+?1
          ????return?histogram

          個(gè)人感覺這個(gè)倉(cāng)庫(kù)里的算法很齊全,適合做練習(xí),小伙伴們可以試試。

          如果小伙伴們想要所有算法腳本,可以在后臺(tái)回復(fù)【b】,領(lǐng)取打包文件。


          加入知識(shí)星球【我們談?wù)摂?shù)據(jù)科學(xué)】

          500+小伙伴一起學(xué)習(xí)!








          ·?推薦閱讀?·

          盤點(diǎn)2021最佳數(shù)據(jù)可視化作品

          一行代碼實(shí)現(xiàn)地址信息解析

          新一代Python包管理工具來(lái)了


          瀏覽 107
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  亚洲国产手机在线 | 麻豆成人精品国产免费 | 国产成人小视频 | 三级黄色免费网站 | 中国三级片翔田千里老师高潮网站 |