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]: