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之dict()的操作方法
Sep 24 Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
关于Python中Inf与Nan的判断问题详解
Feb 08 Python
Python分析学校四六级过关情况
Nov 22 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 Python
详解js文件通过python访问数据库方法
Mar 03 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
Mar 11 Python
python 提取文件指定列的方法示例
Aug 07 Python
Python中if有多个条件处理方法
Feb 26 Python
Python2 与Python3的版本区别实例分析
Mar 30 Python
anaconda升级sklearn版本的实现方法
Feb 22 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 curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
关于JS控制代码暂停的实现方法分享
2012/10/11 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
webpack配置sass模块的加载的方法
2017/07/30 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
vue通过过滤器实现数据格式化
2020/07/20 Javascript
[02:39]DOTA2英雄基础教程 天怒法师
2013/11/29 DOTA
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
Python实现完整的事务操作示例
2017/06/20 Python
python爬取m3u8连接的视频
2018/02/28 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
python用post访问restful服务接口的方法
2018/12/07 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
大学应届毕业生个人求职信
2013/09/23 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
父母寄语大全
2014/04/12 职场文书
专业见习报告范文
2014/11/03 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python