【Python矩陣及其基礎操作】【numpy matrix】


一、矩陣生成

  1、numpy.matrix:

 1 import numpy as np
 2 
 3 x = np.matrix([ [1, 2, 3],[4, 5, 6] ])
 4 y = np.matrix( [1, 2, 3, 4, 5, 6])
 5 
 6 print(x, y, x[0, 0], sep='\n\n')
 7 
 8 matrix([[1, 2, 3]
 9     [4, 5, 6]])
10 
11 [[1 2 3 4 5 6]]
12 
13 1
14 
15 [[1 2 3]]

 

  2、numpy.matlib.empty( shape, dtype, order)

  • shape:定義新矩陣形狀的整數或整數元組
  • dtype:數據類型,可選。
  • order:C(行序優先)或F(列序優先)
import numpy.matlib
import numpy as np

print (np.matlib.empty((2,2)))

#輸出一個填充為隨機數的2行2列的矩陣

 

  3、numpy.matlib.zeros()  numpy.matlib.ones()

 

1 import numpy.matlib
2 import numpy as np
3 
4 print (np.matlib.zeros((2, 2)))    #輸出一個全為0的2行2列矩陣
5 print (np.matlib.ones((2, 2)))      #輸出一個全為1的2行2列矩陣

 

  4、numpy.matlib.eye()

    返回一個對角元素為1,其他位置為0的矩陣,當M=n時為單位矩陣。

 1 #numpy.matlib.eye( n, M, k, dtype)
 2 '''n:返回矩陣的行數
 3 M:返回矩陣的列數,默認為n
 4 k:對角線的索引
 5 dtype:數據類型 '''
 6 
 7 import numpy.matlib
 8 import numpy as np
 9 
10 print (np.matlib.eye(n = 3, M = 4, k = 0, dtype = int)
11 
12 [[1 0 0 0]
13 [0 1 0 0]
14 [0 0 1 0]]

 

  5、numpy.matlib.identity()

    返回給定大小的單位矩陣。單位矩陣是一個方針,其左上角到右下角的對角線上的元素均為1,其余位置全為0。

1 import numpy.matlib
2 import numpy as np
3 
4 print (np.matlib.identity(4, dtype = int))    #輸出4*4的單位矩陣

 

  6、numpy.matlib.rand()

    創建一個給定大小的、數據是隨機填充的矩陣。

import numpy.matlib
import numpy as np

print (np.matlib.rand(4, 4))   #輸出一個4*4的矩陣

 

二、矩陣常用操作

 

  1、矩陣與二維數組相互轉換

    矩陣總是二維的,ndarray是一個n維數組,可以用如下代碼使其相互轉換

1 import numpy.matlib
2 import numpy as np
3 
4 a = np.matrix('1,2;3,4')      #創建一個2*2矩陣a  
5 print(a)                                #輸出矩陣a
6 b = np.asarray(a)               #將矩陣a轉換為2維數組b
7 print(b)                                #輸出數組b
8 c = np.asmatrix(b)             #將數組b轉換為矩陣c
9 print(c)                                 #輸出矩陣c

代碼中的三個print輸出的結果均為    [[1 2]

                   [3 4]]

  2、矩陣轉置

import numpy as np

a = np.matrix([1, 2],[3, 4]])
print(a.T)          #輸出a的轉置矩陣

 

  3、查看矩陣特征

 1 import numpy as np
 2 
 3 x = np.matrix([[1, 2, 3],[4, 5, 6]])
 4 
 5 print(x.mean())                   #輸出所有元素平均值
 6 
 7 print(x.mean(axis=0))         #輸出縱向平均值
 8 
 9 print(x.mean(axis=1))         #輸出橫向平均值
10 
11 print(x.sum())                     #輸出所有元素之和
12 
13 print(x.max(axis=1))           #輸出橫向最大值
14 
15 print(x.argmax(axis=1))       #輸出橫向最大值的下標
16 
17 print(x.diagonal())                #輸出對角線元素

 

  4、矩陣乘法

    矩陣乘法可直接使用*連接兩個矩陣

import numpy as np

x = np.matrix([[1, 2, 3],[4, 5, 6]])
y = np.matrix([[1, 2],[3, 4],[5, 6]])
print(x*y)

 

輸出結果為

[[22 28]

[49 64]]

 

  5、numpy,linalg函數

  1. diag:以一維數組的形式返回方陣的對角線元素,或將一維數組轉換為方陣(非對角線元素為0)
  2. dot:矩陣乘法
  3. trace:計算對角線元素的和
  4. det:計算矩陣行列式
  5. eig:計算方陣的特征值和特征向量
  6. inv:計算方陣的逆
  7. svd:計算奇異值分解(SVD)
  8. solve:解線性方程組Ax=b,其中A為一方陣
  9. lstsq:計算Ax=b的最小二乘解
 1 #numpy.dot()演示
 2 import numpy.matlib
 3 import numpy as np
 4 
 5 a = np.array([[1, 2],[3, 4]])
 6 b = np.array([[11, 12],[13, 14]])
 7 
 8 print(np.dot(a,b))
 9 
10 #輸出結果為
11 [[37 40]
12 [85 92]]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM