0.基礎知識篇
1.匯入numpy包
2.建立矩陣
3.矩陣的基本屬性
4.矩陣的基本方法
5.建立預設矩陣
6.矩陣運算
7.建立等差和等比數列矩陣
8.擴充套件矩陣函式tile()
9.求矩陣最小值,最大值,均值:min,max,mean
10.行列式計算
0.基礎知識篇
numpy的主要操作物件是多維陣列。多維陣列的維度叫軸(axes),軸的個數叫秩(rank),例如三維陣列的秩就是3.
1.匯入numpy包
要進行numpy的操作,必須先導入numpy包:
import numpy as np
2.建立矩陣
建立矩陣 一般用到 兩種方法:
matrix
或array
matrix:
如建立矩陣:
矩陣行之間用分號間隔
import numpy as np
a = np.matrix('1 2 3 ;4 5 6 ; 1 1 0 ')
print(a)
列印結果:
[[1 2 3]
[4 5 6]
[1 1 0]]
array:
from numpy import *
c = array( [ [1,2], [3,4] ])
print(c)
print(c.dtype)
array 後 可跟乙個 dtype 引數,用於指定 array 中的內容。預設情況 dtype 為 int32 。dtype還可以設定為 float 和 complex(表示複數)
from numpy import *
c = array( [ [1,2], [3,4] ] ,dtype =complex)
print(c)
列印結果:
[[ 1.+0.j 2.+0.j]
[ 3.+0.j 4.+0.j]]
3.矩陣的基本屬性(使用與matrix 和 array)
如有矩陣a:
(1)b = a.t #表示矩陣a的轉置矩陣為b
(2)b = a.i #表示矩陣a的逆矩陣為b
(3)b = a.h #表示複數矩陣a的共軛矩陣為b
(4)a.ndim #返回陣列秩,二維的秩就是2,三維的秩就是3
(5)a.shape #返回矩陣的行列,如 m行n列的矩陣,shape返回就是(m,n),因此 a.shape[0]返回矩陣的行,a.shape[1] 返回矩陣的列
(6)a.dtype #返回矩陣元素型別
(7)a.size #返回矩陣的元素總數目
(8)a.itemsize #返回矩陣中每個元素的大小
4.矩陣的基本方法(使用與 matrix 和 array)
若有矩陣a:
(1)a.gett() #返回本身的轉置矩陣
(2)a.geti() #返回本身的逆矩陣
(3)a.geta() #返回自己,但是作為ndarray陣列返回。
(4)a.geta1() #返回自己,但是全部變為一維陣列返回
import numpy as np
a = np.matrix('1 1 ;2 2')
print(a.geta1())
列印結果:[1 1 2 2]
(5)a.argsort:返回的是矩陣的值從小到大(或從大到小)的索引值
from numpy import *
a = array([[1,2],[4,3]])
print('矩陣a:')
print(a)
print('從小到大:')
print(argsort(a))
print('從大到小:')
print(argsort(-a))
列印結果:
矩陣a:
[[1 2]
[4 3]]
從小到大:
[[0 1]
[1 0]]
從大到小:
[[1 0]
[0 1]]
以從小到大為例:第一行的 [0,1] 表示最小的為索引值為0的元素,次小的為索引值為1的元素。
5.建立預設矩陣
(1)zeros() :建立全零矩陣,如:a = zeros((3,4)) 表示此全0矩陣是3行4列的
(2)ones() :建立全1矩陣
from numpy import *
a = eye(3,k=1)
print(a)
列印結果:
[[ 0. 1. 0.]
[ 0. 0. 1.]
[ 0. 0. 0.]]
k<0 則是對角線下一行為1,其餘為0
6.矩陣運算
(1)矩陣加減法:若有矩陣a 和 b,則矩陣加減分別為: a+b , a - b
(2)矩陣乘法:c = dot(a,b)
(3)矩陣中每個元素n次方:c = a**n (其中a 為矩陣,n為n次方)
7.建立等差和等比數列矩陣
(1)建立等差數列:linspace
from numpy import *
x1 = linspace(1,10,10,dtype=int32)
print(x1)
第乙個引數為等差數列起始項,第二個引數為等差數列最後一項,第三個引數為一共有多少項
dtype可以不寫,預設的是浮點型 float64
(2)建立等比數列:logspace
logspace建立的等比數列的起始項和結束項都是以10為底的。如 logspace(0,3,4)表示起始項為10^0,結束項為10^3,共有4個數
from numpy import *
x1 = logspace(0,3,4)
print(x1)
結果:[ 1. 10. 100. 1000.]
同樣可以對 dtype進行設定
8.擴充套件矩陣函式tile()
tile( matrix,(r,c) ) :表示以矩陣 matrix 為乙個單位a,(r,c)表示擴充套件的矩陣的行列
如有 矩陣a=[ 1,2,3] ,
**展示:
from numpy import *
a = array([1,2,3])
b = tile(a,(2,1))
print(b)
列印結果:
[[1 2 3]
[1 2 3]]
當然 tile中的(r,c)也可以取其他的數,道理是一樣的。
9.求矩陣最小值,最大值,均值:min,max,mean
無論是min(),max(),mean(),都有乙個重要引數 axis,以乙個 m*n矩陣a舉例:
當axis 不設定值:返回乙個實數,表示矩陣中的 最小值/最大值/平均值
當axis =0:返回每列中的 最小值/最大值/平均值 ,返回乙個 1*n 矩陣
當axis = 1:返回每行中的 最小值/最大值/平均值 ,返回乙個 m*1矩陣
以 mean()舉例:
from numpy import *
a = array([[1,2,3],[7,8,9]])
print(a)
print('.............')
a = a.mean(axis=0)
print('每列的平均值:')
print(a)
列印結果:
[[1 2 3]
[7 8 9]]
.............
每列的平均值:
[ 4. 5. 6.]
同樣有 axis操作的函式還有求和函式 sum()
10.行列式計算(方法適合於matrix 和 array)
用到 numpy 下的linalg模組的 det 方法:
import numpy as np
a = np.matrix('2 0 0;0 2 0; 0 0 2')
print(a)
b = np.linalg.det(a)
print(b)
[[2 0 0]
[0 2 0]
[0 0 2]]
8.0
Python中的Numpy矩陣
與使用陣列一樣,需要從numpy中匯入matrix或者mat模組 from numpy import matrix,mat這裡使用mat建立乙個矩陣 ss.t但是這裡的轉置並沒有改變原變數中的值,如果需要使用,需要新建立乙個變數進行賦值使用。如果需要將兩個矩陣的每個元素對應相乘時使用numpy中的m...
python 矩陣庫 NumPy矩陣庫
numpy 矩陣庫 numpy 包包含乙個 matrix庫numpy.matlib。此模組的函式返回矩陣而不是返回ndarray物件。matlib.empty matlib.empty 函式返回乙個新的矩陣,而不初始化元素。該函式接受以下引數。numpy.matlib.empty shape,dty...
numpy 矩陣 秩 Numpy 矩陣
機器學習中會用到大量的數學操作,而 numpy 計算庫使這些操作變得簡單,這其中就涉及到了 numpy 的矩陣操作,下面我們就來一起學習如何在 numpy 科學計算庫中進行矩陣的一些基本運算。定義矩陣使用 numpy 科學計算庫中的 mat 函式,如下所示 numpy.mat data,dtype ...