Python之擴展包安裝


讀者朋友,在比較新的版本(Python 2 >=2.7.9 or Python 3 >=3.4)中,pip或者easy_install 擴展包命令已經默認安裝(可查看   你的安裝目錄\python-(你的版本號)\Scripts),不需要額外手動安裝,只需把安裝命令加入到環境變量即可。

 

1 以scikit learn 安裝為例子

 

scikit learn 是Python下開源的機器學習包。(安裝環境:win7.0 32bit和Python2.7)

 

方法一:命令行  easy_install  packagesname

 

在官網 https://pypi.python.org/pypi/setuptools/#windows-simplified 

下載名字為 ez_setup.py的文件。

在命令行窗口運行 ,安裝后,可在python2.7文件夾下生成Scripts文件夾。把路徑D:\Python27\Scripts 添加到環境變量中,即可方便使用easy_install.exe命令了。

  • 理論上應該可以使用 easy_install命令安裝matplotlib,numpy。但是由於網速限制,總是出錯。所以可以選擇下載.exe文件手動安裝。
  • scikit-learn需要以下包或者工具:

    • Python (>= 2.6 or >= 3.3),
    • NumPy (>= 1.6.1),
    • SciPy (>= 0.9).

numpy 下載鏈接

http://download.csdn.net/detail/ivankeiths/1205245 

matplotlib下載鏈接

http://matplotlib.org/downloads.html

在安裝matplotlib之前,需要安裝兩個輔助包,dateutil 和 pyparsing.

可以采用命令 easy_install python_dateutil和easy_install pyparsing安裝

后手動安裝matplotlib即可

  • 若運行命令import matplotlib.pyplot as plt 出現錯誤

ImportError: No module named six; 可把路徑:

C:\Python27\Lib\site-packages\scipy\lib中的six.py six.pyc six.pyo三個文件拷貝到C:\Python27\Lib\site-packages目錄下。

  • 安裝SciPy出現如下錯誤:
I cannot import datetime from a python script, ValueError: numpy.ufunc has the wrong size, try recompiling
 
考慮更換版本。
 

 測試如下代碼:

 1 import numpy as np
 2 import matplotlib.pyplot as plt
 3 
 4 X = np.arange(-5.0, 5.0, 0.1)
 5 Y = np.arange(-5.0, 5.0, 0.1)
 6 
 7 x, y = np.meshgrid(X, Y)
 8 f = 17 * x ** 2 - 16 * np.abs(x) * y + 17 * y ** 2 - 225
 9 
10 fig = plt.figure()
11 cs = plt.contour(x, y, f, 0, colors = 'r')
12 plt.show()

 

運行后:

 

方法二:命令行  pip install  packagesname

下載網址https://pip.pypa.io/en/latest/installing.html

 

2 Python IDE推薦

 

windows 推薦安裝WinPython

 https://winpython.github.io/   下載32bit或64bit的IDE. 安裝后的界面和RStudio相似。

 

 

WinPython 是由 Python(x,y) 的作者開發,功能是比較全的,軟件包也比較新,GUI基於PyQt, 不過相對於Python(x,y),它主要是關注便攜式安裝體驗:你可以把它裝在u盤里面。windows中可以不再使用Python(x,y)了,改成 WinPython了。現在的版本支持Python2和3,穩定性已有相當的改善.發布的版本也比較全。winpython自帶了 spyder作為Python開發環境,安裝時會自動安裝sypder。關於Python IDE介紹參看:http://blog.csdn.net/rumswell/article/details/8927603

 

Linux 可考慮安裝  Anaconda    

https://www.continuum.io/downloads  下載32bit或64bit的IDE。

 

3 Python與R的比較

 

Python與R不同,Python是一門多功能的語言。數據統計是更多是通過第三方包來實現的。

具體來說,我常用的Python在統計上面的Package有這樣一些

1.Numpy與Scipy。這兩個包是Python之所以能在數據分析占有一席之地的重要原因。其中Numpy封裝了基礎的矩陣和向量的操作,而Scipy則在Numpy的基礎上提供了更豐富的功能,比如各種統計常用的分布和算法都能迅速的在Scipy中找到。

2.Matplotlib。這個Package主要是用來提供數據可視化的,其功能強大,生成的圖標可以達到印刷品質,在各種學術會議里面出鏡率不 低。依托於Python,可定制性相對於其他的圖形庫更高。還有一個優點是提供互動化的數據分析,可以動態的縮放圖表,用做adhoc analysis非常合適。

3.Scikit Learn。非常好用的Machine Learning庫,適合於用於快速定制原型。封裝幾乎所有的經典算法(神經網絡可能是唯一的例外,不過這個有Pylearn2來補充),易用性極高。

4.Python標准庫。這里主要是體現了Python處理字符串的優勢,由於Python多功能的屬性和對於正則表達式的良好支持,用於處理text是在合適不過的了。

基本上就日常使用就涉及這些。符號運算等等也有Sympy和Theano等強力第三方庫來支持。總結,Python在你列舉這些里面是綜合功能最強大的,但是這些功能分散在第三方庫里面,沒有得到有機的整合,相應的學習成本會較高。

其它意見

python與R相比速度要快。python可以直接處理上G的數據;R不行,R分析數據時需要先通過數據庫把大數據轉化為小數據(通過groupby)才能交給R做分析,因此R不可能直接分析行為詳單,只能分析統計結果。Python=R+SQL/Hive

R的優勢在於有包羅萬象的統計函數可以調用,特別是在時間序列分析方面(主要用在金融分析與趨勢預測)無論是經典還是前沿的方法都有相應的包直接使用;相比python在這方面貧乏不少。

Python的優勢在於其膠水語言的特性,一些底層用C寫的算法封裝在python包里后性能非常高效(Python的數據挖掘包Orange canve 中的決策樹分析50萬用戶10秒出結果,用R幾個小時也出不來,8G內存全部占滿)。

總的來說Python是一套比較平衡的語言,各方面都可以,而R是在統計方面比較突出。但是數據分析其實不僅僅是統計,前期的數據收集,數據處理, 數據抽樣,數據聚類,以及比較復雜的數據挖掘算法,數據建模等等這些任務,只要是100M以上的數據,R都很難勝任,但是Python卻基本勝任。

補充一下:Python有專門的數據分析包Pandas用來完成類似SQL的功能,不過Pandas是會把數據都load到內存里,如果數據太大(2G以上)需要想辦法分chunk分析,或者用pytables/pyh5轉換為hdf5格式的文件在硬盤上分析。

另外如果是windows環境的話,建議用winpython,上面提到的這些包會自帶。當然更豐富的是pythonxy可惜這個只有32位的。

SAS和SPSS是商業數據分析軟件,本屌從來沒用過。

 

(完)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM