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 相关文章推荐
wxPython中文教程入门实例
Jun 09 Python
python查找目录下指定扩展名的文件实例
Apr 01 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
python基于pyDes库实现des加密的方法
Apr 29 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
Python读取本地文件并解析网页元素的方法
May 21 Python
python版大富翁源代码分享
Nov 19 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
微信小程序python用户认证的实现
Jul 29 Python
深入了解python列表(LIST)
Jun 08 Python
django学习之ajax post传参的2种格式实例
May 14 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
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
jQuery过滤选择器详解
2015/01/13 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
2016/01/13 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
2016/09/17 Javascript
canvas知识总结
2017/01/25 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
用原生JS实现简单的多选框功能
2017/06/12 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
[01:58]最残酷竞争 2016国际邀请赛中国区预选赛积分循环赛回顾
2016/06/28 DOTA
python线程中同步锁详解
2018/04/27 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
荷兰之家英文站:Holland at Home
2016/10/26 全球购物
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
管道维修工岗位职责
2013/12/27 职场文书
大三学生入党思想汇报
2014/01/02 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
中学生打架检讨书
2014/10/13 职场文书
六查六看自查报告
2014/10/14 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
python glom模块的使用简介
2021/04/13 Python
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android
详解如何用Python实现感知器算法
2021/06/18 Python
MySql数据库触发器使用教程
2022/06/01 MySQL
python计算列表元素与乘积详情
2022/08/05 Python