当前位置: 首页 > 知识库问答 >
问题:

用Numpy构造特殊对角矩阵

孙胜泫
2023-03-14

我正在尝试创建一个类似于这样的numpy数组:

[a b c       ]
[  a b c     ]
[    a b c   ]
[      a b c ] 

所以这涉及到更新主对角线和它上面的两条对角线。

做这件事的有效方法是什么?

共有1个答案

公孙胡媚
2023-03-14

我还不能发表评论,但我想强调的是,ali_m的答案是迄今为止最有效的,因为scipy为您处理事情。

例如,对于大小为N的矩阵,m=1200,重复添加np.diag()调用需要~6.14s,Saullo G.P.Castro的回答需要~7.7sscipy.linalg.toeplitz(Np.arange(N),np.arange(N))需要1.57ms

 类似资料:
  • 问题内容: 我试图做一个看起来像这样的numpy数组: 因此,这涉及更新主对角线及其上方的两个对角线。 什么是有效的方法? 问题答案: 这是一个Toeplitz矩阵的示例- 您可以使用以下命令构造它:

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

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

  • 问题内容: 我正在尝试执行以下操作 如何使用Numpy数组中的所有元素轻松高效地创建集合? 问题答案: 如果需要一组元素,这是另一种可能更快的方法: PS :之间执行比较后,和一个10x100阵列上,我发现,它们都在大约相同的速度来执行。对于3x3阵列,最快的版本是迭代器版本: 我建议这样做,因为它是内存消耗较少的版本(它随阵列的大小扩展得很好)。 PPS :还有一个NumPy函数可以执行类似的操

  • 特殊矩阵——对称矩阵(Symmetric Matrix) 注:压缩存储的矩阵可以分为特殊矩阵和稀疏矩阵。对于那些具有相同元素或零元素在矩阵中分布具有一定规律的矩阵,被称之为特殊矩阵。对于那些零元素数据远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称之为稀疏矩阵。 1. 对称矩阵的概念 元素以主对角线为对称轴对应相等的矩阵。 2. 对称矩阵的特性 对角矩阵都是对称矩阵,对称矩阵必须是方形矩阵

  • 问题内容: 我在NumPy中有三个相同大小的正方形矩阵。我想将它们组合成块对角矩阵。 例: 做这个的最好方式是什么? 问题答案: scipy.linalg具有block_diag函数以自动执行此操作