triu()
:返回上三角(Upper triangle)。用k
指定对角线,主对角线为k=0
,右上的对角线用k>0
,左下的对角线用k<0
,返回包括该对角线的上三角。
tril()
:返回下三角(Lower triangle)。用k
指定对角线,主对角线为k=0
,右上的对角线用k>0
,左下的对角线用k<0
,返回包括该对角线的下三角。
In [1]: import numpy as np
In [2]: arr=np.arange(12).reshape(4,3) #以非方阵为例
In [3]: arr
Out[3]:
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
In [4]: np.triu(arr,k=0)
Out[4]:
array([[0, 1, 2],
[0, 4, 5],
[0, 0, 8],
[0, 0, 0]])
In [5]: np.triu(arr,k=1)
Out[5]:
array([[0, 1, 2],
[0, 0, 5],
[0, 0, 0],
[0, 0, 0]])
In [6]: np.triu(arr,k=2)
Out[6]:
array([[0, 0, 2],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
In [7]: np.tril(arr,k=0)
Out[7]:
array([[ 0, 0, 0],
[ 3, 4, 0],
[ 6, 7, 8],
[ 9, 10, 11]])
In [8]: np.tril(arr,k=1)
Out[8]:
array([[ 0, 1, 0],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11]])
In [9]: np.tril(arr,k=-1)
Out[9]:
array([[ 0, 0, 0],
[ 3, 0, 0],
[ 6, 7, 0],
[ 9, 10, 11]])
In [10]: np.tril(arr,k=-2)
Out[10]:
array([[ 0, 0, 0],
[ 0, 0, 0],
[ 6, 0, 0],
[ 9, 10, 0]])
In [11]: