如果兩個矩陣的大小相同,我們可以使用算術運算子來進行兩個矩陣的計算。numpy將對兩個矩陣的對應位置進行操作處理。
當兩個矩陣的大小不同,只有當其中乙個矩陣的維度為1時(例如矩陣只有一列或一行),我們才能在不同大小的矩陣上進行這些算術運算,在這種情況下,numpy將其廣播規則用於該操作:
numpy為每個矩陣提供了一種dot()
方法,可用於與其他矩陣進行點積運算:
上圖的底部新增了矩陣尺寸,以強調兩個矩陣在它們彼此面對的一側必須具有相同的尺寸。可以將此操作視覺化為如下所示:
當操作矩陣時,索引和切片操作變得更加靈活:
矩陣中函式的使用與一維陣列相同。
另外,不僅可以求解矩陣中的所有值,還可以使用axis
引數在行或列之間進行計算:
當需要採用兩個矩陣的點積並需要對齊它們共同維度時,需要旋轉矩陣。numpy陣列有乙個方便的屬性,t
用於獲取矩陣的轉置:
在更高階的應用中,可能會需要切換某個矩陣的維度。在機器學習應用程式中通常就是這種情況,其中某個模型期望輸入的某個形狀與您的資料集不同。
numpy的reshape()
方法在這些情況下很有用。您只需將矩陣所需的新尺寸傳遞給它,numpy可以根據您的矩陣推斷出正確的維度:
numpy可以在任何維度上實現上面講到的知識,其中心資料結構稱為ndarray
(n維陣列),原因很簡單。
在很多情況下,處理新維度只是在numpy函式的引數中新增逗號:
注意:當列印三維numpy陣列時,文字輸出會以不同於此處顯示的方式顯示陣列。numpy列印 n 維陣列的順序是,最後乙個軸最快迴圈,而第乙個軸最慢。這意味著np.ones((4,3,2))
將列印為:
array([[[1., 1.],
[1., 1.],
[1., 1.]],
[[1., 1.],
[1., 1.],
[1., 1.]],
[[1., 1.],
[1., 1.],
[1., 1.]],
[[1., 1.],
[1., 1.],
[1., 1.]]])
numpy多維陣列
ndarray是一種多維陣列物件 data 1,2,3 4,5,6 arr np.array data,dtype np.int32 print arr print shape arr.shape print arr.ndim 1 2 3 4 5 6 shape 2,3 2np.arange 2,1...
Numpy 多維陣列(上)
載入包 from numpy import 有多種方式 使用 python 列表或元祖,使用 arange,linspace 等函式,從檔案中讀取資料。v array 1,2,3,4 m array 1,2 3,4 type v 型別檢視,結果為numpy 模組提供的 ndarray 型別 v.sh...
NumPy 如何構造多維陣列
start import numpy as np numpy.array object,dtype none,copy true,order k subok false,ndmin 0 a np.array 1,2 3,4 元組轉陣列 a np.array 1,2 3,4 列表轉陣列 numpy.z...