取矩阵上三角
1、numpy.triu(x,k):
x:输入数组
k:默认0,对角偏移项,用于指定置0值的位置;k=0表示主对角线的位置,此时保留主对角线上的值,下三角的元素全为0,k=1表示主对角右移1,k=-1表示对角线左移
2、numpy.triu_indices_from(x,k):返回上三角矩阵元素的索引,可根据索引返回矩阵上三角元素
x、k:同numpy.triu()
3、numpy.triu_indices(n,k,m):与numpy.triu_indices_from(x,k)类似,返回上三角矩阵元素的索引
n:行的维度
k:同 numpy.triu()
m:默认None,可用于指定具体的列的维度,默认与 n 相同
import numpy as np
x = np.arange(25).reshape(5,5)
print(x)
#numpy.triu(arr, k=0),返回矩阵的上三角,此时下三角的元素全为0,k=0表示主对角线的位置,k=1表示主对角右移1,k=-1表示对角线左移1
uptri_0 = np.triu(x, k=0)
uptri_1 = np.triu(x, k=1)
uptri_2 = np.triu(x, k=-1)
print(uptri_0,uptri_1,uptri_2)
uptri_idx = np.triu_indices_from(x, k=1)#返回矩阵上三角元素(k=1,不包含对角元素)的索引index
print("uptri_idx:",uptri_idx)
print(x[(uptri_idx)])#将index返回矩阵,矩阵返回对应index的值
uptri_idx1 = np.triu_indices(5, k=1)
print("uptri_idx1:",uptri_idx1)
print(x[(uptri_idx1)])
...........................
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]
#k=0
[[ 0 1 2 3 4]
[ 0 6 7 8 9]
[ 0 0 12 13 14]
[ 0 0 0 18 19]
[ 0 0 0 0 24]]
#k=1
[[ 0 1 2 3 4]
[ 0 0 7 8 9]
[ 0 0 0 13 14]
[ 0 0 0 0 19]
[ 0 0 0 0 0]]
#k=-1
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[ 0 11 12 13 14]
[ 0 0 17 18 19]
[ 0 0 0 23 24]]
uptri_idx: (array([0, 0, 0, 0, 1, 1, 1, 2, 2, 3]), array([1, 2, 3, 4, 2, 3, 4, 3, 4, 4]))
[ 1 2 3 4 7 8 9 13 14 19]
uptri_idx1: (array([0, 0, 0, 0, 1, 1, 1, 2, 2, 3]), array([1, 2, 3, 4, 2, 3, 4, 3, 4, 4]))
[ 1 2 3 4 7 8 9 13 14 19]
取矩阵下三角与上三角类似:
numpy.tril(),numpy.tril_indices_from(),numpy.tril_indices()文章来源:https://www.toymoban.com/news/detail-409358.html
文章来源地址https://www.toymoban.com/news/detail-409358.html
到了这里,关于python学习笔记——取矩阵的上三角或下三角元素的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!