1.矩阵函数汇总
矩阵函数 | 说明 |
np.diag( ndarray) np.diag( [x,y,...]) | 以一维数组的形式返回方阵的对角线(或非对角线)元素 将一维数组转化为方阵(非对角线元素为0) |
np.dot(ndarray, ndarray) | 矩阵乘法 |
np.trace( ndarray) | 计算对角线元素的和 |
2.函数的使用示例
np.diag--提取对角线元素
#以一维数组的形式返回方阵的对角线(或非对角线)元素
#np.diag(ndarray)
#case1: 入参不是n阶方阵
a = np.array([[1,2,3],
[4,5,6]])
ret = np.diag(a) #[1 5]
#case2: 入参不是n阶方阵
a = np.array([[1,2],
[3,4],
[5,6]])
ret = np.diag(a) #[1 4]
#case3: 入参是n阶方阵
a = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
ret = np.diag(a) #[1 5 9]
np.diag--构建方阵
#将一维数组转化为方阵(非对角线元素为0)
#np.diag(v,k=0)
#case1
ret = np.diag([1,2,3])
'''
[[1 0 0]
[0 2 0]
[0 0 3]]
'''
#case2
ret = np.diag(v=[1,2,3], k=1)
'''
[[0 1 0 0]
[0 0 2 0]
[0 0 0 3]
[0 0 0 0]]
'''
ret = np.diag(v=[1,2,3], k=2)
'''
[[0 0 1 0 0]
[0 0 0 2 0]
[0 0 0 0 3]
[0 0 0 0 0]
[0 0 0 0 0]]
'''
#case3
ret = np.diag(v=[1,2,3], k=-1)
'''
[[0 0 0 0]
[1 0 0 0]
[0 2 0 0]
[0 0 3 0]]
'''
ret = np.diag(v=[1,2,3], k=-2)
'''
[[0 0 0 0 0]
[0 0 0 0 0]
[1 0 0 0 0]
[0 2 0 0 0]
[0 0 3 0 0]]
'''
np.dot
#矩阵乘法
#ret = np.dot(a,b,out=None)
#case1: 两个n阶方阵
a = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
b = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
ret = np.dot(a,b)
'''
[[ 30 36 42]
[ 66 81 96]
[102 126 150]]
'''
#case2: n×m矩阵 与 m×t矩阵
a = np.array([[1,2,3],
[4,5,6]])
b = np.array([[1, 0, 1, 0],
[0, 1, 0, 1],
[1, 0, 1, 0]])
ret = np.dot(a,b)
'''
[[ 4 2 4 2]
[10 5 10 5]]
'''
np.trace
#计算对角线元素的和
#np.trace(ndarray)
#case1:n阶方阵
a = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
ret = np.trace(a)#15
#case2:n×m矩阵
a = np.array([[1,2,3],
[4,5,6]])
ret = np.trace(a) #6
(end)