本文目錄一覽:
- 1、人工智慧語言Python中的庫是如何應用的
- 2、python自帶性能強悍的標準庫 itertools
- 3、Python 標準庫模塊 – re
- 4、python的標準庫是什麼
- 5、Python 常用的標準庫以及第三方庫有哪些
- 6、python裡面什麼是標準庫?
人工智慧語言Python中的庫是如何應用的
在Python中,第三方庫有很多種,pandas是其中之一。那麼pandas是用來做什麼的呢?其實pandas的存在很大程度上是為解決數據分析問題而存在的。pandas中不僅包含著大量的關於數據分析的庫和通用的數據模型,也包含處理數據的較為齊全完備的函數,這就使得Python的數據分析功能非常強大,從而當仁不讓地成為人工智慧語言。
pandas是Python的第三方庫,也可以說是Python的數據分析包。同時,它也是開源的,是在數據分析中常見的庫。類似於Python這樣的開源編程的體系中,庫一般有三類。第一類就是開發平台為我們提供的介面;第二類就是我們開發者自己寫的程序;第三類就是pandas這樣的能夠專門用於解決某一領域問題的專用庫。
經常使用Python的朋友都能體驗到擁有強大標準庫的Python是怎樣處理數據的。Python語言的核心,除了數字、字元串、列表、字典、文件等常見類型和函數,還有Python標準庫提供的各種功能,如系統管理、網路通信、文本處理、資料庫介面、圖形系統、XML處理等等,這些都建立在Python標準庫的基礎上。
關於其標準庫的功能大概有以下幾點:
1.文本處理:包括文本的格式化、正則表達式匹配、Unicode、文本差異的計算等;
2.文件處理:Python可直接操作與創建文件、對文件進行壓縮歸檔、操作配置文件等;
3.操作系統:支持線程與進程、IO的復用、日期與時間處理、調用系統函數、日誌等;
4.網路通信:主要內容是非同步網路通信等;
除此之外,網路通信、科學計算也是Python標準庫不可或缺的功能
Python作為一種開源的編程體系也有大量第三方模塊,和標準庫的使用是一樣的。從功能角度而言同樣覆蓋科學計算、Web開發、資料庫介面、圖形系統多個領域。而且功能更加完備,更能夠解決具體問題。這些模塊不僅可用Python來寫,同時也可以用C/C++,作為「膠水語言」的Python也可以將其粘合在一起。SWIG,SIP常用於將C語言編寫的程序庫轉化為Python模塊。Boost C++ Libraries包含了一組函式庫,Boost.Python,使得以Python或C++編寫的程式能互相調用。
在Python中安裝第三方庫可以在PyCharm中進行
首先打開PyCharm,選擇頂部菜單File,選擇Default Settings;
然後搜索project interpreter,選擇當前Python環境,然後底部點擊「+」號添加庫;
其次搜索資料庫名稱,選中一個庫之後點擊底部的Install Package,安裝成功即可,此時可以返回到之前的Project Interpreter中查看已經安裝好的庫,點擊「-」號可以卸載不需要的庫。
在使用第三方庫時,在PyCharm中輸入庫之後即可開始使用,輸入庫用import,後面加上庫的名稱就可以了。
其實Python的優點就在於它的第三方庫的調用方便易行,為開發者提供了很大的便利,也使得Python成為一門受歡迎的編程語言,同時Python中庫的應用也是用Python開發其他程序的基礎。
python自帶性能強悍的標準庫 itertools
可迭代對象就像密閉容器里的水,有貨倒不出
itertools是python內置的標準模塊,提供了很多簡潔又高效的專用功能,使用得當能夠極大的簡化代碼行數,同時所有方法都是實現了生成器函數,這就意味著極大的節省內存。
itertools提供的功能主要分為三大塊,以最新版本的3.10為例:
方法如下:
導入包
iteratortools.count(start=0, step=1)
數值生成器,可以指定起始位置和步長,並且步長可以為浮點數。無限輸出,一直累加,在例子中需要邊睡眠1s邊輸出。
iteratortools.cycle(iteratorable)
無限循環取出可迭代對象里的元素
iteratortools.repeat(object[, times])
不斷重複輸出整個object,如果指定了重複次數,則輸出指定次數,否則將無限重複。
iteratortools.accumulate(iteratorable[, func, *, initial=None])
返回對列表中元素逐項的操作,操作有:
iteratortools.chain(*iteratorables)
將多個可迭代對象構建成一個新的可迭代對象,統一返回。類似於將多個對象鏈成一條串
優點:可以將多個可迭代對象整合成一個,避免逐個取值
chain.from_iteratorable(iteratorable)
將一個迭代對象中將所有元素類似於chain一樣,統一返回。
iteratortools.compress(data, selectors)
按照真值表篩選元素
iteratortools.dropwhile(predicate, iteratorable)
按照條件篩選,丟棄掉第一次不符合條件時之前的所有元素
iteratortools.takewhile(predicate, iteratorable)
根據predicate條件篩選可迭代對象中的元素,只要元素為真就返回,第一次遇到不符合的條件就退出。
按照條件篩選,丟棄第一次遇到不符合條件之後的元素。行為類似於上一個dropwhile,區別在於丟棄的選擇不同。
iteratortools.filterfalse(predicate, iteratorable)
保留不符合條件的元素,返回迭代器
iteratortools.groupby(iteratorable, key=None)
按照指定的條件分類。輸出條件和符合條件的元素
iteratortools.islice(iteratorable, start, stop[, step])
對迭代器進行切片,老版本中不能指定start和stop以及步長,新版本可以。
iteratortools.starmap(function, iteratorable)
將function作用於可迭代對象上,類似於map函數
iteratortools.tee(iteratorable, n=2)
從一個可迭代對象中返回 n 個獨立的迭代器
iteratortools.zip_longest(*iteratorables, fillvalue=None)
創建一個迭代器,從每個可迭代對象中收集元素。如果可迭代對象的長度未對齊,將根據 fillvalue 填充缺失值。
迭代持續到耗光最長的可迭代對象。大致相當於:
iteratortools.product(*iteratorables, repeat=1)
生成多個可迭代對象的笛卡爾積
大致相當於生成器表達式中的嵌套循環。例如, product(A, B) 和 ((x,y) for x in A for y in B) 返回結果一樣。
將可選參數 repeat 設定為要重複的次數。例如,product(A, repeat=4) 和 product(A, A, A, A) 是一樣的
iteratortools.permutations(iteratorable, r=None)
由 iteratorable 元素生成長度為 r 的排列。元素的排列,類似於給一個[1,2,3],選取其中兩個元素,一共有多少種組合方法?不要求元素排列之後的位置。
這個方法能夠完美解決演算法中的全排列問題,簡直是量身定做。如果早知道這麼簡單,當年考演算法也不會。。,哎
可參見leetcode46題:
iteratortools.combinations(iteratorable, r)
返回由輸入 iteratorable 中元素組成長度為 r 的子序列。元素不可重複使用。子序列是要求元素在排列之後和之前的相對位置不變的。1,2,3中3在1的後面,子序列中3也一定在1的後面。
這個方法可以曲線解決組合總數問題
iteratortools.combinations_with_replacement(iteratorable, r)
返回由輸入 iteratorable 中元素組成的長度為 r 的子序列,允許每個元素可重複出現
原文
Python 標準庫模塊 – re
正則表達式引擎對正則表達式文本進行編譯生成正則表達式對象,再由正則表達式對象對目標文本進行匹配,後返回匹配結果。
正則表達式中一共包含 2 中字元: 普通字元 、 元字元
匹配單個字元的元字元及其含義:
匹配重複性的元字元及其含義:
匹配位置的元字元及其含義:
分組匹配的元字元及其含義:
表示或運算的元字元:
轉義元字元:
在 Python 中使用正則表達式,我們需要藉助 re 模塊提供的強大 API,下面我們就來學習幾個 re 模塊常用的介面吧~
參數說明: findall(“正則表達式”, “要匹配的字元串”, flags=標誌1|標誌2|…)
返回值:以列表形式返回匹配到的字元串。
下面,我們用 findall 返回 Python 之禪中首尾用到的反義詞:
運行結果:
當正則表達式中含有一個以上分組時, findall 返回的列表由元組構成,元組中包含每個分組匹配到的內容。如果只有一個分組,則返回由該分組匹配到的內容組所構成的列表:
match 函數返回的結果是一個 SRE_Match 對象:
SRE_Match 具有很多的屬性,比如 .string 屬性可以方便我們我獲取在匹配時輸入的字元串:
屬性 .re 可以獲取匹配時使用的編譯後的正則表達式模式:
由於默認使用了 re.UNICODE ,所以我們這裡的 \w 可以匹配中文字元。
屬性 .regs 則以列表的形式返回正則表達式匹配到的內容以及各個分組陪陪到的內容,不過請注意,返回的都是索引的形式:
可以使用序列切片來看一下我們的正則表達式及其中的兩個分組所匹配到的內容:
SRE_Match 對象也提供了非常多好用的方法,比如 groups 可以獲取各個分組匹配到的內容:
group 則可以靈活地獲取正則表達式或對應分組匹配到的內容:
如果使用的正則表達式定義了分組的名稱, group 還可以通過名稱獲取相應分組匹配的內容:
在定義了分組的名稱之後,還可以方便地使用 groupdict 以字典的形式返回所有分組匹配的結果:
最後需要注意的是, match 從字元串的開頭開始匹配,如果開頭不符合要求,則直接返回 None 。
與 match 匹配開頭不同, search 匹配第一個符合規則的字元串,未成功則返回 None 。參數: re.search(pattern, string, flags=0) ;返回值同 match 。
在介紹 match 的使用時,最後一個例子,由於我們在字元串前面添加了 ‘PYTHON’ 導致 match 使用原來的正則表達式無法匹配,返回 None 。此時,使用 search 就可以迎刃而解啦:
運行結果:
小結:
參數: re.split(pattern, string, maxsplit=0, flags=0) , split 功能非常強大,以正則表達式匹配到的標誌來分隔字元串,比如下面這樣一個混亂的字元串,我們要提取其中所有的數字:
下面,我們就來詳細介紹一下 split 的用法。
首先,是以單字元切割:
以分號切割時,共產生了 4 個子字元串,放在列表中返回。
下面,還是以單字元切割,但可以使用正則表達式中的 [] 來指定多種字元:
由於字元串 line 中有連續的 2 個分號,逗號或者空格,因此可以使用 [;\s,]+ 來切割:
最後,上面的字元串在切割時,分隔符都沒有被保留下來,使用括弧捕獲分組,即可保留分隔符:
re.sub 提供比字元串的 replace 方法更加強大的功能:對於輸入的字元串 string ,利用正則表達式 pattern 強大的字元串處理功能,實現複雜的字元串替換處理為 repl ,返回被替換後的字元串。
下面的例子中,我們將句子中多餘的空格和數字去掉:
如果想要知道替換過程中,共發生了多少次替換,可以使用 subn :
小結:
上述的案例中,我們每次都需要傳入正則表達式,相應的函數每次在調用時,都需要編譯一次正則表達式。如果上述過程需要多次重複,那麼每次都去耗費時間編譯正則表達式是很不划算的。
re 模塊為我們提供了 compile 函數,用來編譯正則表達式模式,返回編譯好模式。因此,可以把那些常用的正則表達式編譯成正則表達式對象,以提高效率。
格式: re.compile(pattern, flags=0) ,其中 pattern 為編譯時用的表達式字元串, flags 為編譯標誌位,用於修改正則表達式的匹配方式,如:是否區分大小寫,多行匹配等。常用的 flags 有:
註:使用按位或 | 連接多個 flags 。
我們上述介紹的 re 模塊的匹配、分割、替換函數, compile 函數的返回值類提供了相應的方法,使用方式類似,只是不需要傳入正則表達式字元串而已。
由於用法幾乎一致,這裡就不一一舉例啦~
貪婪模式 : * + ? {m,n} ,正則表達式的重複默認總是儘可能多得向後匹配內容。
非貪婪模式 : *? +? ?? {m,n}? ,儘可能少的匹配內容。
python的標準庫是什麼
Python 的標準庫非常豐富,如下面列出的內容所示,其提供了非常多的功能。庫包含內置模塊 (用 C 編寫的) 提供訪問系統的功能,如文件 I/O,以及在為發生在日常編程中的許多問題提供標準化的解決方案的 Python 模塊。這些模塊的一些明確旨在鼓勵和加強的 Python 程序的可移植性的抽象掉平台細節到非特定於平台的 Api。
————————————————
版權聲明:本文為CSDN博主「Jurbo」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:
Python 常用的標準庫以及第三方庫有哪些
easy_install lxml import lxmllxml是Python語言里和XML以及HTML工作的功能最豐富和最容易使用的庫。lxml是為libxml2和libxslt庫的一個Python化的綁定。它與眾不同的地方是它兼顧了這些庫的速度和功能完整性,以及純Python API的簡潔性,大部分與熟知的ElementTree API兼容但比之更優越。
python裡面什麼是標準庫?
python標準庫是隨著python安裝時自帶的庫,是最基礎、最常用的一些模塊。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/242479.html