当前位置: 首页 > 面试题库 >

提取numpy矩阵的上三角或下三角部分

云俊名
2023-03-14
问题内容

我有一个矩阵A,我想要2个矩阵UL所以U包含A的上三角元素(所有元素在对角线以上且不包括对角线),以及类似的for
L(所有元素在下面的且不对角线)。有没有numpy办法做到这一点?

例如

A = array([[ 4.,  9., -3.],
           [ 2.,  4., -2.],
           [-2., -3.,  7.]])
U = array([[ 0.,  9., -3.],
           [ 0.,  0., -2.],
           [ 0.,  0.,  0.]])
L = array([[ 0.,  0.,  0.],
           [ 2.,  0.,  0.],
           [-2., -3.,  0.]])

问题答案:

尝试numpy.triu(上三角)和numpy.tril(下三角)。



 类似资料:
  • 问题内容: 这是我拥有的python矩阵的简短版本。我的信息在上方的三角形中。有简单的功能将矩阵的上三角复制到下三角吗? 问题答案: 要在NumPy中执行此操作,而无需使用双循环,可以使用。请注意,根据矩阵的大小,这可能会比添加转置和减去对角线慢一些,尽管此方法可能更具可读性。 注意不要混用,因为它们都使用行主索引,也就是说,这行不通:

  • 特殊矩阵——三对角矩阵(Tridiagonal Matrix) 注:压缩存储的矩阵可以分为特殊矩阵和稀疏矩阵。对于那些具有相同元素或零元素在矩阵中分布具有一定规律的矩阵,被称之为特殊矩阵。对于那些零元素数据远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称之为稀疏矩阵。 1. 三对角矩阵的概念 三对角矩阵就是对角线、邻近对角线的上下次对角线上有元素,其他位置均为0的矩阵。 三对角矩阵是一种特

  • 我正在处理一个非常大的稀疏矩阵乘法(matmul)问题。作为一个例子,让我们说: > A是一个二进制(75 x 200,000)矩阵。它很稀疏,所以我使用csc进行存储。我需要执行以下matmul操作: B=A.转置()*A 输出将是大小为200Kx200K的稀疏对称矩阵。 不幸的是,B存储在我笔记本电脑上的RAM(或“核心”)中会变得太大。另一方面,我很幸运,因为B有一些属性可以解决这个问题。

  • 问题内容: 给定以下形式的方形熊猫DataFrame: 如何能在上三角熔化得到以下形式的矩阵 我对惯用的熊猫解决方案更感兴趣,自定义索引器将很容易手动编写… 预先感谢您的考虑和回应。 问题答案: 首先,我将的较低值转换为by和and ,然后设置列名称:

  • 这是我的审判,但它没有涵盖一切,也在重复,我做错了什么?

  • 这得到了我想要的,但可能没有很好地扩展? 产量