Python创建对称矩阵的方法示例【基于numpy模块】


Posted in Python onOctober 12, 2017

本文实例讲述了Python创建对称矩阵的方法。分享给大家供大家参考,具体如下:

对称(实对称)矩阵也即:Python创建对称矩阵的方法示例【基于numpy模块】

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)

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python判断某个用户对某个文件的权限
Oct 13 Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 Python
python difflib模块示例讲解
Sep 13 Python
使用python实现BLAST
Feb 12 Python
python爬虫爬取快手视频多线程下载功能
Feb 28 Python
python基于itchat模块实现微信防撤回
Apr 29 Python
python运用sklearn实现KNN分类算法
Oct 16 Python
使用matlab或python将txt文件转为excel表格
Nov 01 Python
keras 读取多标签图像数据方式
Jun 12 Python
深入了解Python装饰器的高级用法
Aug 13 Python
在pyCharm中下载第三方库的方法
Apr 18 Python
Python字符串对齐方法使用(ljust()、rjust()和center())
Apr 26 Python
Python中的浮点数原理与运算分析
Oct 12 #Python
python中获得当前目录和上级目录的实现方法
Oct 12 #Python
Python实现的十进制小数与二进制小数相互转换功能
Oct 12 #Python
Python调用C# Com dll组件实战教程
Oct 12 #Python
python 实现一个贴吧图片爬虫的示例
Oct 12 #Python
Python实现曲线点抽稀算法的示例
Oct 12 #Python
python去除字符串中的换行符
Oct 11 #Python
You might like
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
2018/04/20 PHP
浅析PHP echo 和 print 语句
2020/06/30 PHP
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
Vue2.0组件间数据传递示例
2017/03/07 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
js实现简单放大镜效果
2020/03/07 Javascript
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
制药工程专业应届生求职信
2013/09/24 职场文书
卫生系统先进事迹
2014/05/13 职场文书
学习十八大的心得体会
2014/09/12 职场文书
群众路线专项整治方案
2014/10/27 职场文书
个人向公司借款协议书
2016/03/19 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
Android Studio 计算器开发
2022/05/20 Java/Android