讀者朋友,在比較新的版本(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是商業數據分析軟件,本屌從來沒用過。
(完)