1.Python程序
目前,Python仍然是兩個系列的版本並存,一個是Python 2(最新版本是2.7.13),另一個是Python 3(最新版本是3.7.1)。
這兩個版本的語法不完全兼容,因此兩個版本的程序調用對方的執行腳本很可能會報錯。
從現在來看,Python 2和Python 3都已經非常成熟,因此大多數支持Python 2並且仍然開發和維護的庫也開始支持Python 3。從長遠來看,Python 2終究是要被拋棄的,所以遲早是要升級到Python 3的。
如果想要成熟、可靠且穩定的程序,選擇Python 2。
如果只是想學習或了解一下Python, Python 2和Python 3都可以。
如果是企業內部應用,具體看企業用的是哪個版本。
如果你的工作中需要大量的第三方庫,那麼使用Python 2會讓你有更多選擇。
如果你的程序需要在Linux伺服器上運行,那麼去看看你的Linux伺服器自帶的Python是什麼版本(Linux伺服器上自帶Python 2的居多)。如果上述沒有任何一個場景滿足你的需求,那麼就從Python 2開始吧。由於歷史原因,Python 2有更多的應用案例、專業書籍和知識討論分享社區。
2.Python IDE
Python自帶IDE,可以滿足一定的數據開發和測試需求,在交互型的開發和學習上,也有IPython可供選擇。但這裡建議大家選擇另外一個Python IDE工具——PyCharm。PyCharm帶有一整套可以幫助用戶在使用Python語言開發時提高效率的工具,比如調試、語法高亮、項目管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制並可集成IPython、系統終端命令行等。在PyCharm裡幾乎可以實現所有有關Python的工作。下圖是PyCharm工具界面截圖。
3.第三方庫
Python第三方庫包括交互開發庫、科學計算庫、機器學習庫、自然語言庫、資料庫連接庫、圖像處理庫、網絡爬蟲庫、圖像展示庫等。
(1)交互開發庫——IPythonIPython是一個基於Python的交互式shell,比默認的Python shell好用得多,支持變量自動補全、自動縮進、交互式幫助、魔法命令、系統命令等,內置了許多很有用的功能和函數。在本書所說Python第三方庫中,若無特殊說明,默認使用IPython作為交互和測試工具。IPython的安裝可直接在系統終端的命令行窗口使用pip install ipython完成。安裝成功之後,進入系統終端命令行窗口,輸入ipython,回車後進入交互開發界面
(2)科學計算庫NumpyNumpy(Numeric Python)是Python科學計算的基礎工具包,它提供的功能包括:
快速高效的多維數組ndarray,大多數Python的多維數據組都是基於Numpy進行處理的。
基於數組整體或元素級別進行科學計算的能力,需要迭代循環。
比較成熟的(廣播)函數庫。 用於整合C、C++和Fortran代碼到Python的工具包。 實用的線性代數、傅立葉變換和隨機數生成函數。
Numpy和稀疏矩陣運算包Scipy配合使用更加方便。
多種庫和算法間進行數據交互的「數據容器」,由低級語言(例如C)編寫的庫可直接讀取Numpy的數據而不必經過轉換。
(3)機器學習庫——scikit-learnscikit-learn(又稱Sklearn)是一個基於Python的機器學習綜合庫,內置監督式學習和非監督式學習兩類機器學習方法,包括各種回歸、K近鄰、貝葉斯、決策樹、混合高斯模型、聚類、分類、流式學習、人工神經網絡、集成方法等主流算法,同時支持預置數據集、數據預處理、模型選擇和評估等方法,是一個非常完整的機器學習工具庫。scikit-learn是Python數據挖掘和機器學習的主要庫之一。
(4)自然語言處理庫
結巴分詞由於NLTK本身不支持中文分詞,因此在針對中文的處理過程中,我們會引入其他分詞工具,例如結巴分詞。結巴分詞是國內的Python文本處理工具包,分詞模式分為三種:精確模式、全模式和搜尋引擎模式。結巴分詞支持繁體分詞、自定義詞典等,是非常好的Python中文分詞解決方案,可以實現分詞、詞典管理、關鍵字抽取、詞性標註等。結巴分詞的安裝直接使用pip install jieba命令即可。安裝成功之後,在IPython中輸入import jieba時,若不報錯則說明該庫已經成功安裝並導入。
(5)資料庫連接
資料庫存儲是企業數據存儲的基本方式,資料庫類型包括MySQL、Oracle、SQL Server、DB2、Sybase等,基於大數據場景下還會包括Hive、HBase、MongoDB、Redis等的數據存儲。