学习笔记,仅供参考,有错必纠
numpy 操作矩阵的意义
1.可以理解矩阵运算,多维运算
2.可以用于理解tensorflow,pytorch的tensor张量运算,二维张量就是矩阵
例如新建一个矩阵
a = np.arange(1,10).reshape(3,-1)
上下三角矩阵
a = np.arange(1,10).reshape(3,-1)
np.triu(a,1)
或者:
a = np.arange(1,10).reshape(3,-1)
# print(a)
row,column = a.shape
for i in range(row):
for j in range(column):
if i>=j:
a[i,j]=0
print(a)
a = np.arange(1,10).reshape(3,-1)
print(np.triu(a))
print(np.tril(a))
"""
输出
[[1 2 3]
[0 5 6]
[0 0 9]]
[[1 0 0]
[4 5 0]
[7 8 9]]
"""
L = np.tril(a,-1)
print(L)
U = np.triu(a,1)
print(U)
## 输出
"""
[[0 0 0]
[4 0 0]
[7 8 0]]
[[0 2 3]
[0 0 6]
[0 0 0]]
"""
而单独要提取对角线上的元素作为一个矩阵有如下两种方法:
D=np.diag(np.diag(a))
print(D)
np.mat(D)
# 输出
"""
[[1 0 0]
[0 5 0]
[0 0 9]]
matrix([[1, 0, 0],
[0, 5, 0],
[0, 0, 9]])
"""
运用下三角矩阵减去次下三角矩阵(即对角线下的下三角阵)
np.tril(a)-np.tril(a,-1)
"""
array([[1, 0, 0],
[0, 5, 0],
[0, 0, 9]])
"""