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 相关文章推荐
编写自定义的Django模板加载器的简单示例
Jul 21 Python
对Python进行数据分析_关于Package的安装问题
May 22 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
python 查找文件名包含指定字符串的方法
Jun 05 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
Jun 19 Python
对pytorch的函数中的group参数的作用介绍
Feb 18 Python
Python 实现日志同时输出到屏幕和文件
Feb 19 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
Feb 27 Python
Python如何操作office实现自动化及win32com.client的运用
Apr 01 Python
python selenium xpath定位操作
Sep 01 Python
Python tensorflow卷积神经Inception V3网络结构
May 06 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
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
详细讲解JS节点知识
2010/01/31 Javascript
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
自定义ExtJS控件之下拉树和下拉表格附源码
2013/10/15 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
JavaScript事件 "事件对象"的注意要点
2016/01/14 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
python使用Berkeley DB数据库实例
2014/09/26 Python
Python内置函数locals和globals对比
2020/04/28 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
英语师范专业毕业生自荐信
2013/09/21 职场文书
学生党员思想汇报范文
2014/01/09 职场文书
初中生期末评语大全
2014/04/24 职场文书
六查六看心得体会
2014/10/14 职场文书
旷课检讨书范文
2014/10/30 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python
vue+spring boot实现校验码功能
2021/05/27 Vue.js
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python