创建对称矩阵(numpy)
对称(实对称)矩阵也即: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)相关推荐
- python判断矩阵是否对称_Python创建对称矩阵的方法示例【基于numpy模块】
本文实例讲述了Python创建对称矩阵的方法.分享给大家供大家参考,具体如下: 对称(实对称)矩阵也即: step 1:创建一个方阵 >>> import numpy as np & ...
- python创建矩阵_Python创建对称矩阵的方法示例【基于numpy模块】
本文实例讲述了Python创建对称矩阵的方法.分享给大家供大家参考,具体如下: 对称(实对称)矩阵也即: step 1:创建一个方阵 >>> import numpy as np & ...
- B03_NumPy创建数组(numpy.empty,numpy.zeros,numpy.ones)
NumPy创建数组 ndarray数组除了可以使用底层ndarray构造器来创建外,也可以通过以下几种方式来创建. numpy.empty numpy.empty 方法用来创建一个指定形状(shape ...
- pytorch torch.Tensor.numpy()(从张量创建一个numpy数组,数组和张量共享相同内存)
https://pytorch.org/docs/1.1.0/tensors.html?highlight=numpy#torch.Tensor.numpy numpy() → numpy.ndarr ...
- Numpy入门教程:01. 数组的创建与属性
背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执 ...
- numpy 创建加一行_数据科学|可视化图解Python科学计算包Numpy
文章申明 文章作者:梁斌伟 责任编辑:郭德真 微信编辑:玖蓁 本文转载自公众号 实战统计学 (ID:statrcn) 原文链接:可视化图解Python科学计算包NumPy 作者:梁斌伟 编者按: 你真 ...
- numpy 创建加一行_NumPy数据处理的可视化
NumPy库是Python库中用于数据分析,机器学习,科学计算的一个主力,它极大地简化了向量和矩阵的操作和处理.Python的一些主要软件包依赖于NumPy作为其架构的基础部分,比如scikit-le ...
- B05_NumPy从数值范围创建数组(numpy.arange,numpy.linspace,numpy.logspace)
NumPy 从数值范围创建数组 numpy.arange numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下: numpy.arange(start, s ...
- B04_NumPy从已有的数组创建数组(numpy.asarray,numpy.frombuffer,numpy.fromiter)
NumPy从已有的数组创建数组 numpy.asarray numpy.asarray类似numpy.array,但numpy.asarray参数只有三个,比numpy.array少两个. numpy ...
最新文章
- Modus串行链路系统电气特性:2线-Modus、4线-Modus、RS232-Modus和RS485-Modus的特性
- mfc 访问局域网mysql_数据库操作:MFC连接与MYSQL
- java设计模式---代理模式
- [设计模式原则]第五回:迪米特原则
- 第七节:实战前必须掌握的10个指令(上)
- NLP系列学习:CRF条件随机场(2)
- angularjs 路由 异步加载js
- matlab bdir 排序,Matlab 2020b介绍及下载安装步骤
- 技术博客2013年2月份头条记录
- 数据格式与数据类型(Content-Type)
- linux中文输入法配置
- 「技术综述」人脸表情识别研究
- 自行车、电动自行车、儿童自行车做16 CFR 1512测试报告
- python超实用基础一览通
- MISC中图片隐藏文件分离
- 米家接入HomeKit系列二:通过群辉NAS的Docker搭建HomeAssistant
- java获取当前时间的前一个小时
- python alpha beta 剪枝_一看就懂的 Alpha-Beta 剪枝算法详解
- python实现23种设计模式
- 【JZOJ A组省选】词典
热门文章
- 那些配置修改之后需要重新启动
- java 调用native api_Windows和Native API中的系统调用?
- 2021九江一中高考成绩查询系统,九江一中2018高考成绩
- python抓取教学_Python Selenium 实战教学:爬取每日天气
- python财务管理
- Windows驱动——利用WinDriver开发PCI设备驱动程序
- maven依赖avro_在MapReduce中使用Avro
- Linux下virtualenv与virtualenvwrapper详解
- .NetCore 下开发独立的(RPL)含有界面的组件包 (一)准备工作
- 【Spring Cloud 系列】 二、Spring Cloud Eureka 的第一印象