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常见异常分类与处理方法
Jun 04 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
python中实现将多个print输出合成一个数组
Apr 19 Python
Python元组知识点总结
Feb 18 Python
Python脚本修改阿里云的访问控制列表的方法
Mar 08 Python
python pyinstaller打包exe报错的解决方法
Nov 02 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
Apr 21 Python
Python word文本自动化操作实现方法解析
Nov 05 Python
pycharm 关闭search everywhere的解决操作
Jan 15 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动态创建Web站点的方法
2011/08/14 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
JS实现密码框效果
2020/09/10 Javascript
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
详解Python中where()函数的用法
2018/03/27 Python
Python实现的端口扫描功能示例
2018/04/08 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
python打包成so文件过程解析
2019/09/28 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
初中班主任评语大全
2014/04/24 职场文书
医德医风演讲稿
2014/05/20 职场文书
李培根演讲稿
2014/05/22 职场文书
时尚女魔头观后感
2015/06/04 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
八年级作文之友谊
2019/12/02 职场文书
详解Python常用的魔法方法
2021/06/03 Python
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL
springboot读取resources下文件的方式详解
2022/06/21 Java/Android