Python Numpy库的tril()函数返回一个数组的副本,其中第k条对角线以上的元素被清零,k。这个参数代表我们需要的对角线。它是一个可选的整数参数,其默认值为0。如果k>0,对角线在主对角线之上,反之亦然。
np.tril
np.tril()方法返回 一个数组矩阵的副本,其中有关于k的三角形的下半部分的元素 。
tril()方法定义在numpy下,可以导入numpy作为np,我们可以创建多维数组并推导出其他数学统计。
语法
numpy.tril(array, k=0)
参数
它需要两个参数,其中一个参数是可选的。
第一个参数是一个数组,接收输入数组;第二个参数是k,可选。它是一个整数,默认值为0。
K>0代表主对角线之上的对角线,反之亦然,K<0。
返回值
返回数组矩阵的下三角,其数据类型和形状与主数组相同。
关于Python中tril()方法的示例程序
写一个程序来展示Python中tril()函数的工作情况:
import numpy as np
arr = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Main Diagonal elements (for k=0) : \n", np.tril(arr), "\n")
print("Diagonal above main Diagonal elements (For k=1): \n", np.tril(arr, 1),
"\n\n")
print("Main Diagonal elements (For k=-1) : \n", np.tril(arr, -1))
输出
Main Diagonal elements (for k=0) :
[[1 0 0]
[4 5 0]
[7 8 9]]
Diagonal above main Diagonal elements (For k=1):
[[1 2 0]
[4 5 6]
[7 8 9]]
Main Diagonal elements (For k=-1) :
[[0 0 0]
[4 0 0]
[7 8 0]]
在这个例子中,我们可以看到绕过不同的k值,这是因为我们根据矩阵的对角线得到不同的下三角。
写一个程序,取一个4×4的矩阵,然后应用tril()函数:
import numpy as np
arr = np.matrix([[1, 2, 3, 22], [4, 5, 6, 33], [7, 8, 9, 44], [10, 11, 12,
13]])
print("Main Diagonal elements (for k=0) : \n", np.tril(arr), "\n")
print("Diagonal above main Diagonal elements (For k=1): \n", np.tril(arr, 1),
"\n\n")
print("Main Diagonal elements (For k=-1) : \n", np.tril(arr, -1))
输出
Main Diagonal elements (for k=0) :
[[ 1 0 0 0]
[ 4 5 0 0]
[ 7 8 9 0]
[10 11 12 13]]
Diagonal above main Diagonal elements (For k=1):
[[ 1 2 0 0]
[ 4 5 6 0]
[ 7 8 9 44]
[10 11 12 13]]
Main Diagonal elements (For k=-1) :
[[ 0 0 0 0]
[ 4 0 0 0]
[ 7 8 0 0]
[10 11 12 0]]
在这个例子中,我们可以看到,当我们传递一个4×4的矩阵时,对于不同的k值,我们会得到一个相应的输出矩阵。
第一个矩阵为k=0,第二个矩阵为k=1,第三个为k=1。它将主对角线的下半部分以外的值设置为0。
这就是numpy tril()方法的内容。