numpy常用矩陣計算函式總結
阿新 • • 發佈:2019-02-12
a = array([[1,2,3],[2,3,4]])
a.shape
a.ndim
a.min()
- array(list): 建立矩陣或高維向量,例如a = array([[0,1,2,3],[4,5,6,7]]),傳入引數也可以是元組
- shape: 表示向量大小的元組,例如a.shape結果為tuple,形如(2,3)
- ndim: 表示矩陣或高維向量的維數,例如矩陣a的a.ndim為2
- size: 表示向量總元素數
- itemsize: 表示元素所佔位元組數
- nbytes: 表示向量所佔位元組數
- real: 所有元素的實部,返回的還是矩陣形式
- imag: 所有元素的虛部,返回的還是矩陣形式
- flat: 用一維陣列表示矩陣或高維向量(常用於順序遍歷)
- T: 表示矩陣的轉置矩陣(也適用於高維向量),例如:a.T
- zeros(shape): 建立全0矩陣或高維向量,例如a = zeros((2,3))
- ones(shape):建立全1矩陣或高維向量,例如a = ones((2,3))
- add(matrix):將矩陣對應元素相加,結果相當於直接用加號
- dot(matrix)
矩陣乘法,注意必須滿足“能乘”的要求
如果是*,則需注意:
例如:
aaa = array([[10,9,8],[7,6,5],[42,33,2]])
a = aaa.min(0) #取每一列的最小值,返回的是一個數組
aaa*aaa#結果為(2 ),相當於aaa**2:
aaa*a #aaa每行元素分別與a相乘,結果為(1)
a*aaa #結果與上(1)相同
3*aaa #aaa中每個元素乘以3
(1)aa
array([[ 70, 54, 16],
[ 49, 36, 10],
[294, 198, 4]]))
(2)aaa***2
array([[ 100, 81, 64],
[ 49, 36, 25],
[1764, 1089, 4]])
15.reshape(shape)
得到改變形狀的矩陣,例如a = array([[1,2,3],[4,5,6]]).reshape((3,2))的結果為[[1,2],[3,4],[5,6]]。注意矩陣的大小不能改變,即reshape的引數表示的矩陣元素數必須等於原矩陣的元素數。
16.transpose()
得到矩陣的轉置矩陣,a.transpose()相當於a.T
17.swapaxes(d1,d2)
調換給定的兩個維度
18.flatten()
返回對應一維向量,例如:
aaa = array([[10,9,8],[7,6,5],[42,33,2]])
aaa.flatten()
返回值為:
array([10, 9, 8, 7, 6, 5, 42, 33, 2])
19.tolist()
得到矩陣物件轉化為list的結果
aa = aaa.tolist()
aa返回為list型(每一行又是一個子list):
[[10, 9, 8], [7, 6, 5], [42, 33, 2]]
aa[0]
#返回為:
[10, 9, 8]
20.min(axis)
得到所有元素中的最小值。當給定axis值(min(0)或min(axis=0))時,在該座標上求最小值(得到陣列)
例如:
aaa = array([[10,9,8],[7,6,5],[42,33,2]])
aaa.min()
返回為:aaa矩陣中所有元素的最小值
結果為:2
aaa.min(0)
返回為:aaa矩陣中所有列中元素的最小值
結果為:array([7, 6, 2])
aaa.min(1)
返回為:aaa矩陣中所有行中元素的最小值
結果為:array([8, 5, 2])
21.max(axis)
得到所有元素中的最小值。預設引數axis作用和min()相同
22.sum()
得到陣列元素之和,得到的是一個數字。
也可以aaa.sum(axis),分別求每一行或者是每一列的元素之和。
23.cumsum()
得到累計和,即依次加一個元素求和的一維陣列。
例如:
aaa.cumsum()
結果為:array([ 10, 19, 27, 34, 40, 45, 87, 120, 122])
24.prod()
得到陣列所有元素之積,是個數字。
也可以aaa.sum(axis),分別求每一行或者是每一列的元素之積。
25.cumprod()
得到累計積,例子形式與上面cumsum()相同,這兩個函式也都可以分座標累計加和累計乘。
26.mean()
得到元素的平均數
27.all()
如果所有元素為真,返回真;否則返回假
28.any()
如果所有元素只要有一個真,返回真;否則返回假。
29.特徵值
linalg.eigvals()
返回A的特徵值
linalg.eig(A)
返回A的特徵值和特徵向量,例如(eval, evec) = linalg.eig(A),其中eval的對角元為A的各個特徵值,evec對應各列是相應特徵向量。
>>> a = array([[-1,1,0],
[-4,3,0],
[ 1,0,2]])
>>> eval, evec = linalg.eig(a)
>>> eval
array([ 2., 1., 1.])
>>> evec
array([[ 0. , 0.40824829, 0.40824829],
[ 0. , 0.81649658, 0.81649658],
[ 1. , -0.40824829, -0.40824829]])
即特徵向量為λ1=2的(0,0,1)和λ2=λ3=1的(0.4,0.8,-0.4)