1. Jupyter Notebooks
作為小白,我現在使用的python編輯器是Jupyter Notebook,非常的好用,推薦!!!
你可以按[Ctrl] + [Enter]快捷鍵或按菜單中的運行按鈕來運行單元格。
在function(后面按[shift] + [tab],可以獲得函數或對象的幫助。
你還可以通過執行function?獲得幫助。
2. NumPy 數組
操作numpy數組是 Python 機器學習(或者,實際上是任何類型的科學計算)的重要部分。 在這里我主要快速介紹一下重要基本的功能。
import numpy as np # 設置隨機種子來獲得可重復性 rnd = np.random.RandomState(seed=520) # 生成隨機數組 # Array: shape(3, 5); # value: [0, 1] X = rnd.uniform(low=0.0, high=1.0, size=(3, 5)) print(X)
(請注意,NumPy 數組也是從 0 開始的索引)
# 元素訪問 # 獲取單個元素 # (這里是第一行第一列的元素) print(X[0, 0]) # 獲取一行 # (這里是第二行) print(X[1]) # 獲取一列 # (這里是第二列) print(X[:, 1]) # 數組轉置 print(X.T)
# 創建均勻間隔的數字的行向量。 y = np.linspace(0, 12, 5) # 從0開始,到12結束,數量為5 print(y) # 將行向量轉換為列向量 print(y[:, np.newaxis]) # 獲得形狀或改變數組形狀 # 生成隨機數組 rnd = np.random.RandomState(seed=520) X = rnd.uniform(low=0.0, high=1.0, size=(3, 5)) # X的大小(3,5) print(X.shape) # 將 X 大小變為 (5,3) X_reshaped = X.reshape(5, 3) print(X_reshaped) # 使用整數數組的索引(花式索引) indices = np.array([3, 1, 0]) print(indices) # 取X的第4,2,1列作為新數組 X[:, indices]
3. SciPy 稀疏數組
雖然我們平時不會大量使用它們,但稀疏矩陣在某些情況下非常好用。 在一些機器學習任務中,尤其是與文本分析相關的任務,數據可能大多為零。 存儲所有這些零是非常低效的,并且以僅包含“非零”值的方式表示可以更有效。 我們可以創建和操作稀疏矩陣,如下所示:
# 創建一個包含大量零的隨機數組 rnd = np.random.RandomState(seed=123) X = rnd.uniform(low=0.0, high=1.0, size=(10, 5)) print(X) # 將大多數元素設置為零 X[X < 0.7] = 0 print(X) from scipy import sparse # 將 X 轉換為 CSR(壓縮稀疏行)矩陣 X_csr = sparse.csr_matrix(X) print(X_csr) # 將稀疏矩陣轉換為密集數組 print(X_csr.toarray())
(你可能偶然發現了一種將稀疏表示轉換為密集表示的替代方法:numpy.todense;toarray返回一個 NumPy 數組,而todense返回一個 NumPy 矩陣。在本教程中,我們將使用 NumPy 數組,而不是矩陣;scikit-learn 不支持后者。)
CSR 表示對于計算非常有效,但它不適合添加元素。 為此,LIL(List-In-List)表示更好:
# 創建一個空的 LIL 矩陣并添加一些項目 X_lil = sparse.lil_matrix((5, 5)) for i, j in np.random.randint(0, 5, (15, 2)): X_lil[i, j] = i + j print(X_lil) print(type(X_lil)) X_dense = X_lil.toarray() print(X_dense) print(type(X_dense))
通常,一旦創建了 LIL 矩陣,將其轉換為 CSR 格式很有用(許多 scikit-learn 算法需要 CSR 或 CSC 格式)
X_csr = X_lil.tocsr() print(X_csr) print(type(X_csr))
可用于各種問題的可用稀疏格式包括:
- CSR(壓縮稀疏行)
- CSC(壓縮稀疏列)
- BSR(塊稀疏行)
- COO(坐標)
- DIA(對角線)
- DOK(鍵的字典)
- LIL(列表中的列表)
scipy.sparse子模塊還有很多稀疏矩陣的函數,包括線性代數,稀疏求解器,圖算法等等。
4. Matplotlib
機器學習的另一個重要部分是數據可視化。 Python 中最常用的工具是matplotlib。 這是一個非常靈活的包,我們將在這里介紹一些基礎知識。
由于使用的是 Jupyter,所以使用 IPython 方便的內置“魔術函數”,即“matoplotlib內聯”模式,它將直接在筆記本內部繪制圖形。
%matplotlib inline import matplotlib.pyplot as plt # 繪制直線 x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)); # 散點圖 x = np.random.normal(size=500) y = np.random.normal(size=500) plt.scatter(x, y); # 使用 imshow 展示繪圖 # - note that origin is at the top-left by default! x = np.linspace(1, 12, 100) y = x[:, np.newaxis] im = y * np.sin(x) * np.cos(y) print(im.shape) plt.imshow(im); # 輪廓圖 # - 請注意,此處的原點默認位于左下角! plt.contour(im); # 3D 繪圖 from mpl_toolkits.mplot3d import Axes3D ax = plt.axes(projection='3d') xgrid, ygrid = np.meshgrid(x, y.ravel()) ax.plot_surface(xgrid, ygrid, im, cmap=plt.cm.viridis, cstride=2, rstride=2, linewidth=0);
有許多可用的繪圖類型。 查看matplotlib庫是一個很快的學習方法。
總結
到此這篇關于Python中Numpy和Matplotlib基本使用的文章就介紹到這了,更多相關Python Numpy和Matplotlib使用內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/HandsomeToDeath/p/15493693.html