Numpy二维数组的上三角
在本文中,我们将介绍如何使用Numpy获取一个二维数组的上三角矩阵。
要获取一个二维数组的上三角矩阵,我们需要使用Numpy中的triu
函数。下面是一个示例代码:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
upper_tri = np.triu(arr)
print(upper_tri)
上面的代码中,我们首先创建了一个3×3的二维数组arr
,然后使用triu
函数获取了其上三角矩阵并将结果存储在upper_tri
变量中。最后,我们打印了upper_tri
变量中的内容。
执行上述代码将会输出以下结果:
array([[1, 2, 3],
[0, 5, 6],
[0, 0, 9]])
结果显示,upper_tri
变量中保存的是arr
的上三角矩阵。由于arr
的左下角三个元素为0,因此在上三角矩阵中它们被替换为0。
我们可以使用花式索引来获取上三角矩阵中的非零元素,并将它们存储在一维数组中。下面是一个示例代码:
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
upper_tri = np.triu(arr)
non_zero = upper_tri[upper_tri != 0]
print(non_zero)
上面的代码中,我们首先创建了一个3×3的二维数组arr
,然后使用triu
函数获取了其上三角矩阵并将结果存储在upper_tri
变量中。接着,我们使用upper_tri != 0
作为条件来获取upper_tri
中非零元素的布尔索引,将它们传递给upper_tri
作为花式索引的参数,最终将结果存储在non_zero
变量中。最后,我们打印了non_zero
变量中的内容。
对于上面的示例代码,执行后将会输出以下结果:
array([1, 2, 3, 5, 6, 9])
结果显示,non_zero
变量中保存的是upper_tri
中的非零元素。
阅读更多:Numpy 教程
总结
使用Numpy的triu
函数可以快速获取一个二维数组的上三角矩阵。使用花式索引可以方便地获取上三角矩阵中的非零元素。这是Numpy在数据科学中的强大功能之一。