添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

对称(实对称)矩阵也即:XT=X
step 1:创建一个方阵

>>> import numpy as np
>>> X = np.random.rand(5**2).reshape(5, 5)
array([[ 0.26984148,  0.25408384,  0.12428487,  0.0194565 ,  0.91287708],
       [ 0.31837673,  0.35493156,  0.74336268,  0.31810561,  0.04409245],
       [ 0.06644445,  0.8967897 ,  0.10990936,  0.05036292,  0.72581982],
       [ 0.94758512,  0.21375975,  0.36781736,  0.1633904 ,  0.36070709],
       [ 0.53263787,  0.18380491,  0.0225521 ,  0.91239367,  0.75521585]])

step 2:保留其上三角部分

>>> X = np.triu(X)
                                # 保留其上三角部分
array([[ 0.26984148,  0.25408384,  0.12428487,  0.0194565 ,  0.91287708],
       [ 0.        ,  0.35493156,  0.74336268,  0.31810561,  0.04409245],
       [ 0.        ,  0.        ,  0.10990936,  0.05036292,  0.72581982],
       [ 0.        ,  0.        ,  0.        ,  0.1633904 ,  0.36070709],
       [ 0.        ,  0.        ,  0.        ,  0.        ,  0.75521585]])   

step 3:将上三角”拷贝”到下三角部分

>>> X += X.T - np.diag(X.diagonal())
array([[ 0.26984148,  0.25408384,  0.12428487,  0.0194565 ,  0.91287708],
       [ 0.25408384,  0.35493156,  0.74336268,  0.31810561,  0.04409245],
       [ 0.12428487,  0.74336268,  0.10990936,  0.05036292,  0.72581982],
       [ 0.0194565 ,  0.31810561,  0.05036292,  0.1633904 ,  0.36070709],
       [ 0.91287708,  0.04409245,  0.72581982,  0.36070709,  0.75521585]])

注意,要减去一次对角线上的元素。因为上三角cov,和下三角cov.T在进行相加时会把主对角线上的元素相加两次。
或减去两倍对角线元素,可得到对角线为0的对称矩阵

 X += X.T - 2*np.diag(X.diagonal())

step 4:测试

>>> X.T == X
array([[ True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True]], dtype=bool)
>>> X = np.random.rand(5**2).reshape(5, 5) array([[ 0.26984148, 0.25408384, 0.12428487, 0.0194565 , 0.91287708], [ 0.31837673, 0.35493156, 0.74336268, 0.31810561, 0.04409245], [ 0.06644445, 0.8967897 在主题的末尾有一个新的编辑。我是 Python 新手,我想知道如何制作一个简单的三对角 矩阵 NxN。我有三个向量将在一个循环中更新。在我用的是这样的东西:注意:我只想知道如何使用零和什么 Python 参数来调整它。好吧,我这里有两个代码,第一个是我用Fortran编写的,它运行得很好。第二个是我试图用 Python 写的东西。在Fortran语言:do i=2,n-1do j=2,n-1if (i.eq.j)... 本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。 python 对角线 矩阵 Some problems in linear algebra are mainly concerned with diagonal elements of the matrix. For this purpose, we have a predefined function numpy .diag(a) in NumPy library package which auto... 在计算机科学中, 对称矩阵 可用于存储对象之间的距离或表示为无向图的邻接 矩阵 。与经典 矩阵 相比,使用 对称矩阵 的主要优势在于较小的内存需求。在这篇文章中,描述了这种 矩阵 Python 实现。 在 对称矩阵 中,是等同于的。由于这个特性,一个的 对称矩阵 需要存储的也仅仅是个元素... 1.首先利用 numpy 库先生成一个n * n的随机方阵 np.random.randint(low,high,size,dtype) #(最小,最大, 矩阵 的大小n*m) 2.然后将 对角线 的元素全都设置为0即可,这里提供两种思路 np.eye(5,dtype=bool) 会生成一个 对角线 为true,其他地方为False的 矩阵 。 M[np.eye(10,dtype=np.bool)] = xxxxx 就可以直接修改 对角线 如果您有scipy,可以使用sparse.random。下面的sprandsym函数生成一个稀疏随机 矩阵 X,取它的上半个三角形,并将它的 置相加,形成一个 对称矩阵 。因为这会使 对角线 值加倍,所以 对角线 将被减去一次。在非零值正态分布为平均值0和标准差共1页。Kolomogorov-Smirnov测试用于检查非零值是否与正态分布图和直方图一致QQ图也生成了可视化的分布。在import numpy as ... x = torch.randn(4,4) # tensor([[ 0.9148, 0.1396, -0.8974, 2.0014], # [ 0.1129, -0.3656, 0.4371, 0 一、生成单位阵 numpy .identity(N) 和 numpy .eye(N) 都可以用来产生单位阵,且产生的单位阵都是 np.array() 类型, 矩阵 元素都是 float 型。 import numpy as np a = np.eye(4) b = np.identity(4) print(type(a)) print(a) print(type(b)) print(b) 二、生成对角阵 (参考: python 生成单位阵或者对角阵的三种 方法 ) 三、矩... 特征值是 矩阵 对角化后的 对角线 元素,是 矩阵 变换时不变的标量。而特征向量则是指对于一个特定的特征值,满足方程Ax=lambdax的非零向量x,其中A表示原 矩阵 ,lambda是特征值。本文将针对 Python 中的 矩阵 对角化、特征值和特征向量的相关概念进行详细的介绍。本文详细介绍了 Python 中的 矩阵 对角化、特征值和特征向量的相关概念,并提供了代码 示例 演示如何使用 numpy 库进行 矩阵 对角化操作。 矩阵 对角化是将一个n维 矩阵 A进行相似对角化,即将其 化为对角 矩阵 D的过程。其中,对角 矩阵 D的主 对角线 元素为 矩阵 A的特征值。