5個常用的Python標(biāo)準(zhǔn)庫:
站在用戶的角度思考問題,與客戶深入溝通,找到城中網(wǎng)站設(shè)計(jì)與城中網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋城中地區(qū)。
1、os:提供了不少與操作系統(tǒng)相關(guān)聯(lián)的函數(shù)庫
os包是Python與操作系統(tǒng)的接口。我們可以用os包來實(shí)現(xiàn)操作系統(tǒng)的許多功能,比如管理系統(tǒng)進(jìn)程,改變當(dāng)前路徑,改變文件權(quán)限等。但要注意,os包是建立在操作系統(tǒng)的平臺上的,許多功能在Windows系統(tǒng)上是無法實(shí)現(xiàn)的。另外,在使用os包中,要注意其中的有些功能已經(jīng)被其他的包取代。
我們通過文件系統(tǒng)來管理磁盤上儲存的文件。查找、刪除、復(fù)制文件以及列出文件列表等都是常見的文件操作。這些功能通常可以在操作系統(tǒng)中看到,但現(xiàn)在可以通過Python標(biāo)準(zhǔn)庫中的glob包、shutil包、os.path包以及os包的一些函數(shù)等,在Python內(nèi)部實(shí)現(xiàn)。
2、sys:通常用于命令行參數(shù)的庫
sys包被用于管理Python自身的運(yùn)行環(huán)境。Python是一個解釋器,也是一個運(yùn)行在操作系統(tǒng)上的程序。我們可以用sys包來控制這一程序運(yùn)行的許多參數(shù),比如說Python運(yùn)行所能占據(jù)的內(nèi)存和CPU,Python所要掃描的路徑等。另一個重要功能是和Python自己的命令行互動,從命令行讀取命令和參數(shù)。
3、random:用于生成隨機(jī)數(shù)的庫
Python標(biāo)準(zhǔn)庫中的random函數(shù),可以生成隨機(jī)浮點(diǎn)數(shù)、整數(shù)、字符串,甚至幫助你隨機(jī)選擇列表序列中的一個元素,打亂一組數(shù)據(jù)等。
4、math:提供了數(shù)學(xué)常數(shù)和數(shù)學(xué)函數(shù)
標(biāo)準(zhǔn)庫中,Python定義了一些新的數(shù)字類型,以彌補(bǔ)之前的數(shù)字類型可能的不足。標(biāo)準(zhǔn)庫還包含了random包,用于處理隨機(jī)數(shù)相關(guān)的功能。math包補(bǔ)充了一些重要的數(shù)學(xué)常數(shù)和數(shù)學(xué)函數(shù),比如pi、三角函數(shù)等等。
5、datetime:日期和時間的操作庫
日期和時間的管理并不復(fù)雜,但容易犯錯。Python的標(biāo)準(zhǔn)庫中對日期和時間的管理頗為完善,你不僅可以進(jìn)行日期時間的查詢和變換,還可以對日期時間進(jìn)行運(yùn)算。通過這些標(biāo)準(zhǔn)庫,還可以根據(jù)需要控制日期時間輸出的文本格式。
除此之外,Python還有很多第三方庫,了解更多可移步:oldboyedu
一些python常用函數(shù)包:
1、Urllib3
Urllib3是一個 Python 的 HTTP 客戶端,它擁有 Python 標(biāo)準(zhǔn)庫中缺少的許多功能:
線程安全
連接池
客戶端 SSL/TLS 驗(yàn)證
使用分段編碼上傳文件
用來重試請求和處理 HTTP 重定向的助手
支持 gzip 和 deflate 編碼
HTTP 和 SOCKS 的代理支持
2、Six
six 是一個是 Python 2 和 3 的兼容性庫。這個項(xiàng)目旨在支持可同時運(yùn)行在 Python 2 和 3 上的代碼庫。它提供了許多可簡化 Python 2 和 3 之間語法差異的函數(shù)。
3、botocore、boto3、s3transfer、awscli
Botocore是 AWS 的底層接口。Botocore是 Boto3 庫(#22)的基礎(chǔ),后者讓你可以使用 Amazon S3 和 Amazon EC2 一類的服務(wù)。Botocore 還是 AWS-CLI 的基礎(chǔ),后者為 AWS 提供統(tǒng)一的命令行界面。
S3transfer(#7)是用于管理 Amazon S3 傳輸?shù)?Python 庫。它正在積極開發(fā)中,其介紹頁面不推薦人們現(xiàn)在使用,或者至少等版本固定下來再用,因?yàn)槠?API 可能發(fā)生變化,在次要版本之間都可能更改。Boto3、AWS-CLI和其他許多項(xiàng)目都依賴s3transfer。
4、Pip
pip是“Pip Installs Packages”的首字母遞歸縮寫。
pip很容易使用。要安裝一個包只需pip install package name即可,而刪除包只需pip uninstall package name即可。
最大優(yōu)點(diǎn)之一是它可以獲取包列表,通常以requirements.txt文件的形式獲取。該文件能選擇包含所需版本的詳細(xì)規(guī)范。大多數(shù) Python 項(xiàng)目都包含這樣的文件。
如果結(jié)合使用pip與virtualenv(列表中的 #57),就可以創(chuàng)建可預(yù)測的隔離環(huán)境,同時不會干擾底層系統(tǒng),反之亦然。
5、Python-dateutil
python-dateutil模塊提供了對標(biāo)準(zhǔn)datetime模塊的強(qiáng)大擴(kuò)展。我的經(jīng)驗(yàn)是,常規(guī)的Python datetime缺少哪些功能,python-dateutil就能補(bǔ)足那一塊。
6、Requests
Requests建立在我們的 #1 庫——urllib3基礎(chǔ)上。它讓 Web 請求變得非常簡單。相比urllib3來說,很多人更喜歡這個包。而且使用它的最終用戶可能也比urllib3更多。后者更偏底層,并且考慮到它對內(nèi)部的控制級別,它一般是作為其他項(xiàng)目的依賴項(xiàng)。
7、Certifi
近年來,幾乎所有網(wǎng)站都轉(zhuǎn)向 SSL,你可以通過地址欄中的小鎖符號來識別它。加了小鎖意味著與該站點(diǎn)的通信是安全和加密的,能防止竊聽行為。
8、Idna
根據(jù)其 PyPI 頁面,idna提供了“對 RFC5891 中指定的應(yīng)用程序中國際化域名(IDNA)協(xié)議的支持。”
IDNA的核心是兩個函數(shù):ToASCII和ToUnicode。ToASCII會將國際 Unicode 域轉(zhuǎn)換為 ASCII 字符串。ToUnicode則逆轉(zhuǎn)該過程。在IDNA包中,這些函數(shù)稱為idna.encode()和idna.decode()
9、PyYAML
YAML是一種數(shù)據(jù)序列化格式。它的設(shè)計(jì)宗旨是讓人類和計(jì)算機(jī)都能很容易地閱讀代碼——人類很容易讀寫它的內(nèi)容,計(jì)算機(jī)也可以解析它。
PyYAML是 Python 的YAML解析器和發(fā)射器,這意味著它可以讀寫YAML。它會把任何 Python 對象寫成YAML:列表、字典,甚至是類實(shí)例都包括在內(nèi)。
10、Pyasn1
像上面的IDNA一樣,這個項(xiàng)目也非常有用:
ASN.1 類型和 DER/BER/CER 編碼(X.208)的純 Python 實(shí)現(xiàn)
所幸這個已有數(shù)十年歷史的標(biāo)準(zhǔn)有很多信息可用。ASN.1是 Abstract Syntax Notation One 的縮寫,它就像是數(shù)據(jù)序列化的教父。它來自電信行業(yè)。也許你知道協(xié)議緩沖區(qū)或 Apache Thrift?這就是它們的 1984 年版本。
11、Docutils
Docutils是一個模塊化系統(tǒng),用來將純文本文檔處理為很多有用的格式,例如 HTML、XML 和 LaTeX 等。Docutils能讀取reStructuredText格式的純文本文檔,這種格式是類似于 MarkDown 的易讀標(biāo)記語法。
12、Chardet
你可以用chardet模塊來檢測文件或數(shù)據(jù)流的字符集。比如說,需要分析大量隨機(jī)文本時,這會很有用。但你也可以在處理遠(yuǎn)程下載的數(shù)據(jù),但不知道用的是什么字符集時使用它。
13、RSA
rsa包是一個純 Python 的 RSA 實(shí)現(xiàn)。它支持:
加密和解密
簽名和驗(yàn)證簽名
根據(jù) PKCS#1 1.5 版生成密鑰
它既可以用作 Python 庫,也能在命令行中使用。
14、Jmespath
JMESPath,發(fā)音為“James path”,使 Python 中的 JSON 更容易使用。它允許你聲明性地指定如何從 JSON 文檔中提取元素。
15、Setuptools
它是用于創(chuàng)建 Python 包的工具。不過,其文檔很糟糕。它沒有清晰描述它的用途,并且文檔中包含無效鏈接。最好的信息源是這個站點(diǎn),特別是這個創(chuàng)建 Python 包的指南。
16、Pytz
像dateutils一樣,這個庫可幫助你處理日期和時間。有時候,時區(qū)處理起來可能很麻煩。幸好有這樣的包,可以讓事情變得簡單些。
17、Futures
從 Python 3.2 開始,python 提供current.futures模塊,可幫助你實(shí)現(xiàn)異步執(zhí)行。futures 包是該庫適用于 Python 2 的 backport。它不適用于 Python3 用戶,因?yàn)?Python 3 原生提供了該模塊。
18、Colorama
使用 Colorama,你可以為終端添加一些顏色:
更多Python知識請關(guān)注Python自學(xué)網(wǎng)
(1)scikit-learn
Python下做機(jī)器學(xué)習(xí),首推scikit-learn。該項(xiàng)目文檔齊全、講解清晰,功能齊備,使用方便,而且社區(qū)活躍。
(2)Orange
機(jī)器學(xué)習(xí)是其的功能之一,主要還是側(cè)重數(shù)據(jù)挖掘,可以用可視化語言或Python進(jìn)行操作,擁有機(jī)器學(xué)習(xí)組件,還具有生物信息學(xué)以及文本挖掘的插件。
(3)shogun
shogun,非日本的老外弄的一個機(jī)器學(xué)習(xí)庫,還專門配了一個我們能看懂的日文名“將軍”(是日本幕府時代的將軍)。文檔齊全,開發(fā)活躍,更新快,運(yùn)算速度也很快。主攻大尺度的核函數(shù),尤其是大尺度核函數(shù)下的SVM。具有很多SVM的高級用法,比如多核配用等。支持Python、R、C++、Matlab等語言。
(4)其它
A.pyml(a python module for machine learning,支持svm/knn/k-means==)
B.milk(python的機(jī)器學(xué)習(xí)工具包,主要是針對監(jiān)督學(xué)習(xí),包括svm/knn/決策樹)