NumPy 的一些指令練習
import numpy as np
from numpy.linalg import inv
# 矩陣基本指令練習
# 矩陣最一般的寫法
A = np.matrix([[1,2,3],[4,5,6],[7,8,9]])
print(A)
# range 用法說明
# range(10) 默認是從 0 開始到第 10 個,0~9 共 10 個。
print(np.array(range(10)))
# range(1,10) 則代表從 1 開始到第 10 個(這個第 10 依然是從 0 開始數的,所以會是 9)
print(np.array(range(1,10)))
# 由上可知 array()會把裡面的東西化列。
print(np.array([1, 2, 3, 4, 5]))
# 重塑
B = np.array(range(1,7)).reshape(3,2)
print(B)
# 如果元素數量相同,也可以重塑
B = B.reshape(2,3)
print(B)
B = B.reshape(1,6)
print(B)
B = B.reshape(6,1)
print(B)
# 矩陣乘法
C = A*A
print(C)
print(B.reshape(2,3)*C)
D = np.zeros((3,2))
print(D)
I = np.identity(3)
print(I)
E = np.diag([3,5,7])
print(E)
F = np.array(range(1,10)).reshape(3,3)
# 取出第 2 和第 0 列成為新的矩陣
G = F[[2,0]]
print(G)
# 取出第 1 和第 2 行成為新的矩陣
H = F[:,[1,2]]
print(H)
# 矩陣的基本運算
# 轉置
AT = A.transpose()
print(AT)
# 加減乘
C = A + AT
print(C)
C = A-AT
print(C)
# 矩陣的 * 表示矩陣乘法
A = np.matrix([[1,2],[3,4]])
C = A*A
print(C)
# 陣列的 * 表示 Hadamard 乘積
A = np.array([[1,2],[3,4]])
C = A*A
print(C)
# 陣列要用矩陣乘法必須使用 .dot() 方法
C = A.dot(A)
print(C)
# 逆矩陣,必須有 from numpy.linalg import inv
D = inv(A)
print(D)
# 其他練習
# NumPy ndarray 物件的維度
print(A.ndim)
print(A.reshape(1,4))
留言
張貼留言