一名Python程序員會用哪些好用的工具?
在人工智能和數據科學領域,Python是最受歡迎的語言之一,近年來更是發展迅猛,也是各大編程語言榜單中的香餑餑。無疑,2018年將是人工智能和機器學習大熱的一年。同時,機器學習對用戶而言傾向于具有Python的風格,因為它比Java更加友好。在數據科學方面,Python的語法與數學語法最為接近,因此成為了數學家或經濟學家等專業人士最容易理解和學習的語言。
機器學習工具Shogun
Shogun是一個開源的機器學習工具箱,專注于支持向量機(SVM),它是用C ++編寫的,它是1999年創建的最古老的機器學習工具之一!它提供了廣泛的統一機器學習方法,其創建背后的目標是為機器學習提供透明和可訪問的算法,并為任何對此領域感興趣的人提供免費的機器學習工具。
Shogun提供了一個記錄完備的Python界面,主要用于統一的大規模學習,并提供高性能的速度。但是,有些人發現它的API很難使用。
Keras
Keras是一個高級神經網絡API,提供了一個Python深度學習庫。對于任何初學者來說,這是機器學習的最佳選擇,因為與其他庫相比,它提供了一種表達神經網絡的更簡單的方法。Keras是用Python編寫的,能夠在TensorFlow,CNTK或Theano等流行的神經網絡框架之上運行。
據官方網站稱,Keras側重于4個主要指導原則,即用戶友好性,模塊化,易擴展性和使用Python。然而,就速度而言,Keras與其他庫相比處于劣勢。
Scikit-Learn
這是一個用于數據挖掘和數據分析的開源工具。它也適用于數據科學。Scikit-Learn提供了一致且易于使用的API以及網格和隨機搜索。其主要優勢之一是其在玩具數據集上執行不同基準的速度。Scikit-Learn的主要功能包括分類,回歸,聚類,降維,模型選擇和預處理。
Pattern
Pattern是一個Web挖掘模塊,為數據挖掘,自然語言處理,機器學習,網絡分析和<canvas>可視化提供工具。它還附帶完善的文檔和超過50個示例以及超過350個單元測試。最重要的是,它是免費的!
Theano
可以說是最成熟的Python深度學習庫之一,Theano的主要功能包括與NumPy緊密集成,透明使用GPU,高效的符號差異化,速度和穩定性優化,動態C代碼生成以及廣泛的單元測試和自我驗證。
它提供了定義,優化和評估數學表達式的工具,并且可以在Theano上構建大量其他庫,以探索其數據結構。盡管如此,與Theano合作時還是有一些缺點的;它的API可能會增加一些學習曲線,而另一些人則認為Theano由于無法適應生產環境而不像其他庫那樣高效。
數據科學工具SciPy
這是一個基于Python的數學,科學和工程開源軟件生態系統。SciPy使用NumPy,IPython或Pandas等各種軟件包為常用的數學和科學編程任務提供庫。當你想操縱計算機上的數字并顯示或發布結果時,此工具是一個很好的選擇,并且它也是免費的。
Dask
Dask是一款通過集成到其他社區項目(如NumPy,Pandas和Scikit-Learn)為分析提供并行性的工具。同樣,通過更改只有幾行代碼,可以快速對現有代碼進行并行處理,因為它的DataFrame與Pandas庫中的相同,它的Array對象的工作方式類似于NumPy能夠并行化以純Python編寫的作業。
Numba
此工具是一種開源優化編譯器,它使用LLVM編譯器基礎結構將Python語法編譯為機器碼。在數據科學應用中與Numba一起工作的主要優勢在于它使用NumPy數組代碼的速度,因為Numba是一個支持NumPy的編譯器。就像Scikit-Learn一樣,Numba也適用于機器學習應用,因為它的加速可以在特別為機器學習或數據科學應用程序構建的硬件上運行得更快。
HPAT
高性能分析工具包(HPAT)是一個基于編譯器的大數據框架。它可以自動將Python中的分析/機器學習代碼擴展到裸機集群/云性能,并可以使用@jit裝飾器優化特定功能。
Cython
使用數學密碼或密碼循環運行的代碼時,Cython是你的最佳選擇。Cython是一款基于Pyrex的源代碼翻譯器,可讓你輕松編寫Python的C擴展。更重要的是,通過增加對與IPython / Jupyter筆記本集成的支持,與Cython一起編譯的代碼可以通過內聯注釋在Jupyter筆記本中使用,就像任何其他Python代碼一樣。