什么是Python中的Numpy tril()函数?

583 阅读2分钟

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()方法的内容。

参见

Numpy around()

Numpy flip()

Numpy flipud()

Numpy fliplr()

Numpy triu()