1. 程式人生 > >Python開篇——簡介、pip和conda

Python開篇——簡介、pip和conda

人生苦短,我用Python。

那我還是來介紹一下它(湊一波字數)吧。

Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/), 是一種面向物件的解釋型計算機程式設計語言,由荷蘭人Guido van Rossum於1989年發明,第一個公開發行版發行於1991年。Python是純粹的自由軟體, 原始碼和直譯器CPython遵循 GPL(GNU General Public License)協議。Python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮排。Python具有豐富和強大的庫。它常被暱稱為膠水語言,能夠把用其他語言製作的各種模組(尤其是C/C++)很輕鬆地聯結在一起。常見的一種應用情形是,使用Python快速生成程式的原型(有時甚至是程式的最終介面),然後對其中有特別要求的部分,用更合適的語言改寫,比如3D遊戲中的圖形渲染模組,效能要求特別高,就可以用C/C++重寫,而後封裝為Python可以呼叫的擴充套件類庫。需要注意的是在您使用擴充套件類庫時可能需要考慮平臺問題,某些可能不提供跨平臺的實現。7月20日,IEEE釋出2017年程式語言排行榜:Python高居首位 。

百度百科

也有不少新聞提了,Python在資料科學領域位居首位。可以說接著深度學習和機器學習的火熱,Python再次大熱了一波,當然說Python是深度學習的語言也不準確,事實上深度學習裡的Python主要是膠水語言的作用,比如大家喜聞樂見的Tensorflow,其實底層是C++,只不過提供了Python介面。

總體來說Python就是一句話,寫得快,跑得慢。同樣的功能實現,C和C++可能要100行,Python可能只需要10行(數字不一定準,但是能節省寫的時間是真的)。同時最強大的大概是Python豐富和強大的庫了(這點跟R還是蠻像的,所以都很流行)。

這裡簡介一些重點庫。

1 Python常用庫

爬蟲:Scrapy(舉世聞名,分散式爬蟲框架,不僅僅是簡單的庫)、beautifulsoup4、urllib、urllib2、selenium等。

機器學習:scikit-learn(灰常牛逼的一個庫,幾乎所有機器學習演算法都囊括了應該),NLTK(自然語言處理工具包 )等(用一個等的原因是,說起來除了scikit-learn,我還真不知道還有啥,hhh)。

網站:Django(重量級網頁框架)、Flask(輕量級網頁框架)等。

資料處理科學計算:Numpy(陣列矩陣神器)、Scipy(科學計算神器)、Pandas(熊貓包,R語言玩家轉Python的最愛)等。

視覺化:matplotlib(matlab風格式的包)、seaborn(散點圖矩陣神器)、ggplot(R語言視覺化神器的Python版本)、plotly(這個神器是個js庫,不過也有各種流行的語言介面)等。

深度學習:看知乎吧(強行蹭一波熱點,深度學習是機器學習的一部分)

地學相關:basemap(畫地圖的庫)、cartopy(畫地圖的庫)、Folium(leaflet的Python版本 )、GDAL(開源GIS庫)、geocoder(地理編碼神器)、geopandas(地理資料的熊貓包)、geopy(還沒玩過)、PySAL(空間計量經濟學的一個神包)等(跟地學相關的包實在太多,後面有空的話,考慮會重點介紹幾個包)。

另外這裡多提兩個關於ArcGIS的包,一個是arcpy,熟悉ArcGIS的同學知道,這個是ArcGIS內嵌Python的神器,可以非常方便呼叫ArcGIS各項功能,但是有一點就是不開源(畢竟人家是商業軟體嘛,所以那些老想著在自己安裝的Python上import arcpy的同學可以省省功夫了),另外多提一個Esri公司新推出的ArcGIS API for Python,這個在前面的使用者大會觀感上提到過,是基於portal和online的一套API,還是有些可以玩的價值,後面也會考慮介紹這個內容。

2 Python安裝

安裝這個事情實在太小了。畢竟開源語言,一路next安裝完畢。唯一問題可能是要配個環境變數。

順帶一提就是現在的2.0和3.0之爭。Python 2.0到3.0過渡確實還做得一般,但是3.0有它的好處,2.0目前就是比較穩定。很多包都暫時沒遷移到Python3.0上。但是最近numpy的一個通知,正在顯示3.0時代的到來。

筆者自己也還是用的2.7,不過還是在考慮學習3的事情(其實也不是很麻煩),如果你剛剛起步就從3.0開始也沒毛病。

當然如果為了科學計算,可以考慮直接安裝Anaconda,而不是從Python開始一步一步安裝。

anaconda (一個開源的Python發行版本)
anaconda指的是一個開源的Python發行版本,其包含了conda、Python等180多個科學包及其依賴項。[1] 因為包含了大量的科學包,Anaconda 的下載檔案比較大(約 500 MB),如果只需要某些包,或者需要節省頻寬或儲存空間,也可以使用Miniconda這個較小的發行版(僅包含conda和 Python)。

百度百科

3 pip和conda

最後講講題目裡的這倆貨,其實conda在上面介紹Anaconda的時候已經講到了,這兩個都是Python包管理的工具。還是很不錯的。這個部分也介紹下這兩個工具怎麼用。

pip安裝就不提了,不清楚可以自己百度。

安裝包的命令如下:

pip install packages

然而一頓操作猛如虎之後。

事實上,我們去找一下pip的檔案就明白為什麼了。

位置是Python安裝路徑/Scripts下。pip是個exe呀。這回只要開啟cmd,定位到pip的exe資料夾下,然後pip install就OK了。用檢視已經安裝的包的命令測試。

pip list

conda其實功能命令跟pip差別不大,這裡就不多做介紹了。也是獻上conda檢視包的結果圖。