Python本身的數據分析功能不強,需要安裝一些第三方擴展庫來增強它的能力。這裡用到的庫有 Numpy、 Scipy、 Matplotlib、 Pandas、 scikit-learn、 Keras和 Gensim等,下面將對這些庫的安裝和使用進行簡單的介紹。
如果安裝了 Anaconda,那麼它已經自帶了以下庫: Numpy、 Scipy、Matplotlib、 Pandas和 scikit-lean。這裡主要是對這些庫進行簡單的介紹,之後會通過各種案例對這些庫的使用進行更加深入的說明。
值得一提的是,這裡所介紹的擴展庫,它們的官網上的幫助文檔都相當詳細。用 Python進行科學計算是很豐富的學問,這裡只是用到了它的數據分析和挖掘相關的部分功能,所涉及的一些庫。
Numpy
Python並沒有提供數組功能。雖然列表可以完成基本的數組功能,但它不是真正的數組,而且在數據量較大時,使用列表的速度就會慢得讓人難以接受。為此, Numpy提供了真正的數組功能,以及對數據進行快速處理的函數。 Numpy還是很多更高級的擴展庫的依賴庫,後面章節介紹的 Scipy、 Matplotlib、 Pandas等庫都依賴於它。值得強調的是, Numpy內置函數處理數據的速度是C語言級別的,因此在編寫程序的時候,應當儘量使用它們內置的
函數,避免出現效率瓶頸的現象(尤其是涉及循環的問題)。
在 Windows中, Numpy安裝跟普通的第三方庫安裝一樣,可以通過pip安裝
pip install numpy
也可以自行下載源代碼,然後用
python setup. py install
安裝。在 Linux下上述方面也是可行的。此外,很多 Linux發行版的軟件源中都有 Python常見的庫,因此還可以通過 Linux自帶的軟件管理器進行安裝,如在 Ubuntu下可以用
sudo apt-get install python-numpy
安裝。安裝完成後,可以使用以下命令進行測試。
# -*- coding:utf-8 -*-
#引入numpy包
import numpy as np
#創建數組
a = np.array([2,0,1,8])
#輸出數組
print(a)
#引用前三個數字
print(a[:3])
#輸出a的最小值
print(a.min())
#讓數組從小到大排序,該方法會直接修改數組
a.sort()
print(a)
#創建二維數組
b = np.array([[1,2,3],[4,5,6]])
#輸出數組的平方
print(b*b)
Numpy是 Python中相當成熟和常用的庫,因此關於它的教程有很多,最值得一看的是它官網的幫助文檔。http://www.numpy.org/
Scipy
如果說 Numpy讓 Python有了 Matlab的味道,那麼 Scipy就讓 Python真正地成為了半個Matlab了。 Numpy提供了多維數組功能,但它只是一般的數組,並不是矩陣。例如,當兩個數組相乘時,只是對應元素相乘,而不是矩陣乘法。 Scipy提供了真正的矩陣,以及大量基於矩陣運算的對象與函數。
Scipy包含的功能有最優化、線性代數、積分、插值、擬合、特殊函數、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學與工程中常用的計算,顯然,這些功能都是挖掘與建模必備的。
Scipy依賴於 Numpy,因此安裝它之前得先安裝 Numpy。安裝 Scipy的方式與安裝Numpy的方法大同小異。
Windows下,使用pip命令安裝:
pip install scipy
需要提及的是,在 Ubuntu下也可以用類似的
sudo apt-get install python-scipy
安裝。
這裡不做過多介紹,更多學習可參考http://www.scipy.org/
Matplotlib
不論是數據挖掘還是數學建模,都免不了數據可視化的問題。對於 Python來說Matplotlib是最著名的繪圖庫,它主要用於二維繪圖,當然它也可以進行簡單的三維繪圖它不但提供了一整套和 Matlab相似但更為豐富的命令,讓我們可以非常快捷地用 Python可視化數據,而且允許輸出達到出版質量的多種圖像格式。
Matplotlib的安裝並沒有什麼特別之處,可以通過 pip install matplotlib安裝或者自行下載源代碼安裝,在 Ubuntu下也可以用類似的。
sudo apt-get install python-matplotlib
安裝。
Matplotlib的上級依賴庫相對較多,手動安裝的時候,需要逐一把這些依賴庫都安裝好。安裝完成後就可以牛刀小試了,下面是一個簡單的作圖例子,它基本包含了Matplotlib作圖的關鍵要素。
# -*- coding:utf-8-
import numpy as np
#導入 Matplot1ib
import matplotlib.pyplot as plt
#作圖的變量自變量
x = np.linspace(0,10,1000)
#因變量y
y = np.sin(x) + 1
#因變量z
z = np.cos(x**2) + 1
#設置圖像大小
plt.figure(figsize=(8,4))
#作圖,設置標籤線條顏色、線條大小
plt.plot(x,y,label='$\sinx+1$',color='red',linewidth=2)
#普作圖,設置標籤、線條類型
plt.plot(x,z,'b--1',label='$\cosx^2+1$')
#x軸名稱
plt.xlabel('Time(s)')
#y軸名稱
plt.ylabel('Volt')
#標題
plt.title('A Simple Example')
#顯示的y軸範圍
plt.ylim(0,2.2)
#顯示圖例
plt.legend()
#顯示作圖結果
plt.show()
更多學習可參考:
http://matplotlib.org/
http://matplotlib.org/gallery.html
閱讀更多 數據分析和挖掘 的文章