1. 程式人生 > >python numpy--矩陣的建立

python numpy--矩陣的建立

1.手動建立

語法:np.mat(‘str’)
函式建立矩陣,其中字串的表示中,矩陣的行與行之間用分號隔開,行內的元素之間用空格隔開。

a=np.mat('1 2 3;4 5 6;7 8 9') # 中間打逗號也可以 b=np.mat('1,2,3;4,5,6;7,8,9')

2.使用NumPy陣列進行建立

(1)利用mat(ndArray)函式建立矩陣(利用reshape函式)

c=np.mat(np.arange(9)) #一維的矩陣
c=np.mat(np.arange(9).reshape(3,3))

(2)利用mat(ndArray)函式建立矩陣,矩陣中存放隨機數。
利用numpy.random 模組中的函式生成
在這裡插入圖片描述



在這裡插入圖片描述
在這裡插入圖片描述

以下抽取常用的函式來演示:

  • 1)np.random.rand()均勻分佈隨機數
    給幾個數就是幾維的。
#建立一個兩行3列的隨機小數的矩陣
d = np.mat(np.random.rand(2,3))
  • 2)標準正態分佈隨機數 np.random.randn()
    給幾個數字就是幾維的
e = np.mat(np.random.randn(3,2))
  • 3)隨機整數 np.random.randint(min,max,munber)
f = np.mat(np.random.randint(1,10,8)) #法一,在1到10之間取8個整數
np.random.randint(1,100,25).reshape((5,5)) #法二,在1到100之間取25個整數,形狀是5*5的矩陣,維度只能在reshape中體現了

取1-100內 5*5的隨機整數

np.random.randint(1,100,[5,5])
  • 4)np.random.random(shape)0-1的隨機數
    shape=[2,3] 表示2行3列
g = np.mat(np.random.random([2,3]))
  • 5)np.random.choice(a,size=None,replace=True,p=None) 從a中取size個數據

a:如果a是單個變數 則採用np.arange(a)的形式
size:int 或者 (int1,int2,…intn).是一個可選引數 決定了輸出的shape,如果給定(m,n,k),那mnk就是shape
replace:bool引數,可選擇引數。決定取樣的資料中是否有重複值
replace = True 有重複值;replace = False 沒有重複值
p:一維資料引數,可選引數。作用是對應的a中每個取樣點的概率分佈,如果沒有表述就是標準/均勻分佈

h1=np.random.choice(5,3)# a 是單個變數
# h1 = np.random.choice(np.arange(5),3)
# 取無重複
h2 = np.random.choice(a=list('abcde'),size =(2,2),replace=False)      # True是預設的,有重複
# 引數p,p是概率,下面程式碼表示1出現的概率是0.4,2出現的概率是0.3,以此類推,加起來總的概率是1
h3 = np.random.choice([1,2,3,4],20,p=[0.4,0.3,0.2,0.1])

3.從已有矩陣建立新的矩陣

語法:np.bmat()
步驟:建立兩個小矩陣–用函式bmat複合

A = np.eye(2) #建立一個2*2的對角矩陣
B = 2*A #對角矩陣中的值×2
C = np.bmat('A B;A B;B A')#複合AB兩個矩陣