对称(实对称)矩阵也即:XT=XX^T=X

step 1:创建一个方阵

>>> import numpy as np
>>> X = np.random.rand(5**2).reshape(5, 5)
>>> X
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)# 保留其上三角部分
>>> 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())
>>> X
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在进行相加时会把主对角线上的元素相加两次。

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)

创建对称矩阵(numpy)相关推荐

  1. python判断矩阵是否对称_Python创建对称矩阵的方法示例【基于numpy模块】

    本文实例讲述了Python创建对称矩阵的方法.分享给大家供大家参考,具体如下: 对称(实对称)矩阵也即: step 1:创建一个方阵 >>> import numpy as np & ...

  2. python创建矩阵_Python创建对称矩阵的方法示例【基于numpy模块】

    本文实例讲述了Python创建对称矩阵的方法.分享给大家供大家参考,具体如下: 对称(实对称)矩阵也即: step 1:创建一个方阵 >>> import numpy as np & ...

  3. B03_NumPy创建数组(numpy.empty,numpy.zeros,numpy.ones)

    NumPy创建数组 ndarray数组除了可以使用底层ndarray构造器来创建外,也可以通过以下几种方式来创建. numpy.empty numpy.empty 方法用来创建一个指定形状(shape ...

  4. pytorch torch.Tensor.numpy()(从张量创建一个numpy数组,数组和张量共享相同内存)

    https://pytorch.org/docs/1.1.0/tensors.html?highlight=numpy#torch.Tensor.numpy numpy() → numpy.ndarr ...

  5. Numpy入门教程:01. 数组的创建与属性

    背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执 ...

  6. numpy 创建加一行_数据科学|可视化图解Python科学计算包Numpy

    文章申明 文章作者:梁斌伟 责任编辑:郭德真 微信编辑:玖蓁 本文转载自公众号 实战统计学 (ID:statrcn) 原文链接:可视化图解Python科学计算包NumPy 作者:梁斌伟 编者按: 你真 ...

  7. numpy 创建加一行_NumPy数据处理的可视化

    NumPy库是Python库中用于数据分析,机器学习,科学计算的一个主力,它极大地简化了向量和矩阵的操作和处理.Python的一些主要软件包依赖于NumPy作为其架构的基础部分,比如scikit-le ...

  8. B05_NumPy从数值范围创建数组(numpy.arange,numpy.linspace,numpy.logspace)

    NumPy 从数值范围创建数组 numpy.arange numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下: numpy.arange(start, s ...

  9. B04_NumPy从已有的数组创建数组(numpy.asarray,numpy.frombuffer,numpy.fromiter)

    NumPy从已有的数组创建数组 numpy.asarray numpy.asarray类似numpy.array,但numpy.asarray参数只有三个,比numpy.array少两个. numpy ...

最新文章

  1. Modus串行链路系统电气特性:2线-Modus、4线-Modus、RS232-Modus和RS485-Modus的特性
  2. mfc 访问局域网mysql_数据库操作:MFC连接与MYSQL
  3. java设计模式---代理模式
  4. [设计模式原则]第五回:迪米特原则
  5. 第七节:实战前必须掌握的10个指令(上)
  6. NLP系列学习:CRF条件随机场(2)
  7. angularjs 路由 异步加载js
  8. matlab bdir 排序,Matlab 2020b介绍及下载安装步骤
  9. 技术博客2013年2月份头条记录
  10. 数据格式与数据类型(Content-Type)
  11. linux中文输入法配置
  12. 「技术综述」人脸表情识别研究
  13. 自行车、电动自行车、儿童自行车做16 CFR 1512测试报告
  14. python超实用基础一览通
  15. MISC中图片隐藏文件分离
  16. 米家接入HomeKit系列二:通过群辉NAS的Docker搭建HomeAssistant
  17. java获取当前时间的前一个小时
  18. python alpha beta 剪枝_一看就懂的 Alpha-Beta 剪枝算法详解
  19. python实现23种设计模式
  20. 【JZOJ A组省选】词典

热门文章

  1. 那些配置修改之后需要重新启动
  2. java 调用native api_Windows和Native API中的系统调用?
  3. 2021九江一中高考成绩查询系统,九江一中2018高考成绩
  4. python抓取教学_Python Selenium 实战教学:爬取每日天气
  5. python财务管理
  6. Windows驱动——利用WinDriver开发PCI设备驱动程序
  7. maven依赖avro_在MapReduce中使用Avro
  8. Linux下virtualenv与virtualenvwrapper详解
  9. .NetCore 下开发独立的(RPL)含有界面的组件包 (一)准备工作
  10. 【Spring Cloud 系列】 二、Spring Cloud Eureka 的第一印象