Python3:Excel数据转成矩阵并计算该矩阵的特征值和特征向量

用matlab计算矩阵的权重,用Excel计算层次分析法的矩阵权重分析 层次分析法(AnalytioHieacrrhyProcess,AHP),是一种定性与定量相结合的多目标决策方法,在许多工程领域都有应用。利用层次分析法进行风险识别的基本思路是:把复杂的风险问题分解为各个组成因素,将这些因素按支配关系分组形成有序的递阶层次结构,通过两两比较判断的方式确定每一层次中各因素相对于上一层或最高层总目标的相对重要性,并加以排序,从而判断出系统主要风险模式和风险因素。AHP体... 阅读详情
AI摘要

本文介绍如何使用Python将Excel数据转换为矩阵,并计算其协方差矩阵的特征值和特征向量,适用于已知协方差矩阵或仅有原始数据的情况。

第一种实现方法(适用于已知协方差矩阵的情况):

#Python实现将Excel的数值型数据转成矩阵,并计算其特征值和特征向量的计算方法
import numpy as np
import pandas as pd
import xlrd
from sklearn import preprocessing
def excel_to_matrix(path):
    table = xlrd.open_workbook(path).sheets()[0]#获取第一个sheet表
    row = table.nrows  # 行数
    col = table.ncols  # 列数
    datamatrix = np.zeros((row, col))#生成一个nrows行ncols列,且元素均为0的初始矩阵
    for x in range(col):
        cols = np.matrix(table.col_values(x))  # 把list转换为矩阵进行矩阵操作
        datamatrix[:, x] = cols # 按列把数据存进矩阵中
    #特征值和特征向量的计算  
    print ('求矩阵的特征值与特征向量:')
    print  (eig(datamatrix))#特征值是按照列放的,结果中的一列代表一个特征向量
    return datamatrix#返回的是Excel中的数据转成矩阵的结果
datafile = u'D:\\Users\\DUANPT\\Desktop\\3.xlsx'#数据文件所在路径
excel_to_matrix(datafile)#执行定义的函数

'''
输出的结果如下所示:
求矩阵的特征值与特征向量:
(array([51.06975432,  8.16965705, 13.74947752]), 该列是特征值
array([[-0.5070749 , -0.69860555, -0.50480227],这是特征向量,按列排放的
       [-0.61727541,  0.70311139, -0.35299496],
       [-0.60153646, -0.13260714,  0.78776217]]))
Out[34]: 
下面是Excel中的数据转成矩阵的结果:
array([[20.62222222, 14.42222222, 10.86666667],
       [14.42222222, 25.21111111, 14.37777778],
       [10.86666667, 14.37777778, 27.15555556]])
'''

第二种实现方法(适用于只有原始数据的情况):

#将Excel中的数据读成dataframe形式,然后通过.cov()计算出该数据的协方差,将该数据转换成矩阵形式,即可计算出其特征值和特征向量
import pandas as pd
import numpy as np
df = pd.read_excel(r'D:\Users\DUANPT\Desktop\4.xlsx')  #读入Excel数据,填写数据文件存放的路径
data = df[['x','y','z']]  #x,y,z是数据文件的表头,数据是按列排放的,即,x,y,z三列数据,视为三个特征词
print(data.cov())  #计算该数据的协方差
matrix = np.array(data.cov())  #将协方差转为矩阵形式
print ('求矩阵的特征值与特征向量:')
print (eig(matrix))  #计算其特征值和特征向量,特征向量按列排放,一列是一个特征向量。如果得到的特征是复数形式,则可以将代码这么写,a,b = eig(matrix)#a存放的是特征值,b存放的是特征向量a1 = np.real(a)#.real()是取特征值复数的实部,b1 = np.real(b)#是取特征向量复数的实部
'''
输出的结果如下:
           x          y          z
x  20.622222  14.422222  10.866667
y  14.422222  25.211111  14.377778
z  10.866667  14.377778  27.155556
求矩阵的特征值与特征向量:
(array([51.06975432,  8.16965705, 13.74947752]), #该列是特征值
array([[-0.5070749 , -0.69860555, -0.50480227],
       [-0.61727541,  0.70311139, -0.35299496],
       [-0.60153646, -0.13260714,  0.78776217]]))
'''
获取数据 - 将Excel文件读入矩阵matrix中 - Python代码 机器学习中,很多算法的计算逻辑是基于数学的,免不了求特征值和特征向量这种事情,因此,在数据预处理的时候,将数据源中的数据转储成矩阵格式是很有必要的。 原数据: 代码: import numpy as np import pandas as pd import xlrd from sklearn import preprocessing def excel_to_matrix(pat... 阅读详情

相关推荐

告别Python!纯Excel手算PCA主成分分析,从协方差到特征向量保姆级教程

本文提供了一份纯Excel手算PCA主成分分析的保姆级教程,从协方差矩阵构建到特征向量求解,逐步解析PCA的数学本质。通过Excel的基础函数实现数据降维,适合需要深入理解PCA原理的数据分析人员,无需依赖Python等编程工具。

weixin_28686915的博客 263

excel统计分析——矩阵相关知识

对于n阶方阵A,如果存在数λ和非零向量γ,使AX=λX(X≠0),则称λ是矩阵A的特征根(characteristic root,又称特征值),X是矩阵A属于特征根λ的特征向量(characteristic vector)。矩阵的乘积定义为前一矩阵第i行与后一矩阵第j列对应元素的乘积之和组成的新矩阵的第i行第j列的元素。矩阵的转置指互换矩阵行与列的位置,转置后的矩阵称为原矩阵的转置矩阵(transposed matrix)。矩阵的和(差)定义为两个同型矩阵对应位置上的元素相加(减)得到的新矩阵。

maizeman126的博客 840

别再用Python了!Excel也能搞定PCA主成分分析,手把手教你一步步演算

本文详细介绍了如何在Excel中手动实现PCA主成分分析,从数据准备、中心化处理到构建协方差矩阵、求解特征值和特征向量,一步步演算全过程。通过Excel的透明计算,帮助读者深入理解PCA的数学原理,适合数据分析初学者和希望摆脱黑盒操作的专业人士。

weixin_30855761的博客 276

PCA 主成分分析 用Excel一步步演算过程详解

PCA Excel演算 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理。 2 PCA简介 主成分分析(Principal Components Analysis),简称PCA,是一种数据降维技术,用于数据预处理。在PCA中,数据从原来的坐标系转化到新的坐标系中。通常第一个新坐标轴选择的是原始数据方差...

数据科学汇集 1万+

层次分析法AHP判断矩阵权重计算:Python与MATLAB实现及一致性检验

层次分析法(AHP)是一种将定性判断转化为定量权重的多准则决策方法,其核心在于构造判断矩阵并计算权重向量。通过1-9标度法构建正互反矩阵,利用特征值法或方根法求解权重,并进行一致性检验(CR<0.1)。AHP在供应商评估、方案排序等场景中具有重要技术价值,尤其适合指标多、数据少的决策问题。本文结合Python和MATLAB代码,详细讲解判断矩阵的构建、权重计算、一致性检验及排错技巧,并给出多准则实战案例与群决策处理方法,帮助读者从课件理论落地到工程实践。

weixin_29029995的博客 237

python读excel数据计算特征值和特征向量

在使用AHP(层次分析法)时,需要计算特征值,使用pyhon读取Excel数据处理 此程序使用python读excel数据计算特征值和特征向量; 使用了numpy、xlrd、xlwt库;

Python——Excel数据转化为矩阵

def excel2m(path): data = xlrd.open_workbook(path) table = data.sheets()[0] nrows = table.nrows # 行数 ncols = table.ncols # 列数 c1 = np.arange(0, nrows, 1) datamatrix = np.zer...

美酒爱尔兰的博客 2万+

vba求特征值与特征向量

通过用vba求矩阵的特征值与特征向量。可用于大多数

【学习笔记】pandas提取excel数据形成三元组,采用neo4j数据库构建小型知识图谱

学习抽取excel中半结构化数据形成三元组构建简单的知识图谱,代码来自github。

早知晓的博客 7094

vfsglobal预约系统登录问题全解析(by quqi99)

本文全面解析VFS Global预约系统登录常见问题,包括IP限制、验证码验证失败及账号自动删除等。提供详细的解决方案,如DNS配置、浏览器设置及邮箱选择建议,帮助用户顺利完成签证预约。特别针对中国用户遇到的IP限制问题,给出了实用技巧。

gamma的博客 1340

【数字图像相关-OpenCorr学习笔记】Epipolar search原理+代码解析

OpenCorr是一个开源C++库,用于研究和开发数字图像相关(DIC)技术它提供了2D和立体声DIC的全功能模块,以及数字体积相关(DVC)。最近正在学习OpenCorr,为了更深层次地理解ICGN,我打算浅浅剖析Opencorr的代码,学习的过程中写下这篇学习笔记,以后忘记了还能回来看看。同时,作为一名在读研究生,希望能得到社区大佬的指点,以及跟同学们一起学习进步。这一期主要讲解Eipipolar search的原理,并且附上部分代码解析。

ywyywyy的博客 1356

python自学视频与excel_零基础机器学习之Python进阶-(1)用Python读取和写入Excel

阅读文本大概需要 5 分钟。前言基础写了八篇,以后会继续学,一定会完成零基础机器学习计划,从今天开始柠檬会跟着一起写Python进阶,用小项目来带着大家一起学习Python。读取Excel中的数据因为导师最近需要我完成一个任务就是将十多个Excel中的十多个矩阵表用函数把AHP(层次分析法)权重矩阵算出来,所以需要用Python实现读取Excel中数据和将数据(权重矩阵)存到Excel中的两个功能...

weixin_39978863的博客 177

保姆级教程:用Docker Compose在Linux上一键部署Milvus 2.5.8(附配置文件详解)

本文提供了一份详细的Milvus 2.5.8安装指南,通过Docker Compose在Linux系统上一键部署这款高性能向量数据库。教程涵盖环境准备、配置文件解析、服务启动验证及常见问题解决,帮助开发者快速搭建AI应用所需的基础设施。

weixin_28829629的博客 269

Python数学建模:用特征值与SVD解构现实系统

矩阵是描述多变量耦合系统的通用语言,线性代数中的特征值与奇异值分解(SVD)并非抽象数学概念,而是从数据中提取系统稳定性、主成分与隐藏模式的核心工具。特征值揭示动态系统的固有行为(如交通网络收敛性、马尔可夫链稳态),SVD则擅长处理非对称观测数据(如用户-商品评分、传感器时序),实现降噪、压缩与业务可解释的降维。二者在Python中通过NumPy、SciPy和scikit-learn高效实现,但需关注数值稳定性、标准化必要性及结果的物理映射——这正是数学建模从公式走向决策的关键跃迁。本文聚焦Python实战

weixin_30765577的博客 391

使用cubeMX生成USB HID设备

本文主要介绍如何使用stm32开发板和cubeMX生成HID设备,供参考。

专注音频,高效工作,快乐生活! 970

立创EDA手动拼板实战:当自带功能不够用,如何用‘复制粘贴’搞定异形拼版与特殊布局

本文详细介绍了立创EDA手动拼板技术在异形拼版与特殊布局中的应用实战。通过CTRL+SHIFT+V等核心操作技巧,解决混合尺寸拼板、特殊间距需求等复杂场景,提升PCB设计效率与灵活性,特别适合需要高精度控制的射频电路和医疗设备项目。

weixin_31967485的博客 386

别再用Python了!Excel手把手教你搞定PCA主成分分析(附完整数据与公式)

本文详细介绍了如何在Excel中零代码实现PCA主成分分析,无需依赖Python编程。通过销售数据案例,逐步演示数据准备、协方差矩阵构建、特征值与特征向量计算等关键步骤,帮助业务分析师高效完成降维分析。文章还提供了进阶技巧、商业应用场景及模板优化建议,证明Excel在20维以内数据集处理中的实用价值。

weixin_30770783的博客 164

薅“刷宝”羊毛的autojs脚本教程,简单粗暴好用!!!

本教程旨在帮助大家实现用手机或闲置手机来进行“刷宝”平台的收益,能薅多少米就看你的本事了,作者教你的是如何用autojs来进行脚本的挂机教程,掌握了这个思路后,你可以根据自己的实际需要来改进脚本或者撸别的平台:) 适用系统,**android4.0以上,苹果机暂不适用**(大多数android系统手机都是7.0以上,要查看自己手机是android几,见文件夹“视频教程-基础”>1.查看android版本的方法)

rousseaou8的博客 8万+

Python 数据分析第三版(二)

最后,我们可以得出结论,像线性代数这样的数学学科是所有机器学习算法的核心支柱。在本章中,我们专注于基础的线性代数概念,旨在提升你作为数据专业人士的能力。在这一章中,你学习了许多使用 NumPy 和 SciPy 子包的线性代数概念。我们主要关注了多项式、行列式、矩阵求逆;解线性方程;特征值和特征向量;奇异值分解(SVD);随机数;二项分布和正态分布;正态性检验;以及掩码数组。下一章,第五章,数据可视化,将介绍如何使用 Python 进行数据可视化这一重要主题。

龙哥盟 1278

基于深度学习的交通标志识别系统:使用YOLOv10、UI界面及自定义数据集的实现

实时检测和分类交通标志。提供一个友好的用户界面,方便用户上传图片或视频进行检测。收集和显示检测结果,以便进行进一步分析。YOLO(You Only Look Once)是一种高效的目标检测算法,它能够在一次前向传播中同时进行目标定位和分类。YOLOv10是YOLO系列的最新版本,具有更好的检测精度和速度。本项目成功实现了基于YOLOv10的交通标志检测与识别系统。通过实时检测与分类,系统能够有效识别出各种交通标志,为智能交通应用提供支持。

YOLO 1234

【100%通过率】华为od机试C卷【特殊的加密算法】Python 实现

有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下1.明文为一段数字串由0-9组成2.密码本为数字0-9组成的二维数组3.需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里的数字串是由相邻的单元格数字组成,上下和左右是相邻的,注意:对角线不相邻,同一个单元格的数字不能重复使用。

MISAYAONE的博客 5924

主成分分析代码实现及结果解读

主成分分析的python代码实现与结果可视化

2302_76527484的博客 983

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

别再死记硬背AHP公式了!用Excel+Python 5分钟搞定数学建模里的权重计算

本文介绍如何利用Excel和Python自动化完成数学建模中的层次分析法(AHP)权重计算,解决传统手工计算耗时且易出错的问题。通过Excel构建判断矩阵,Python自动化处理一致性检验和权重计算,5分钟内即可完成从矩阵构建到结果输出的全过程,大幅提升数学建模效率。

weixin_28683065的博客 365

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

用python做主成分分析PCA

晚上才写完,还没有经过数据的测试。不过还是想先贴出来,出来再测试修改完善下。 要用到三个库,pandas打开excel获取数据,numpy做矩阵处理和math函数。 import numpy as np import math import pandas as pd data_frame = pd.read_excel('data.xls', sheet_name= '表1' ) A = ...

qq_42756072的博客 1355

0基础python入门书籍 excel_零基础机器学习Python进阶:Python读、写Excel

阅读文本大概需要 5 分钟。前言基础写了八篇,以后会继续学,一定会完成零基础机器学习计划,从今天开始柠檬会跟着一起写Python进阶,用小项目来带着大家一起学习Python。读取Excel中的数据因为导师最近需要我完成一个任务就是将十多个Excel中的十多个矩阵表用函数把AHP(层次分析法)权重矩阵算出来,所以需要用Python实现读取Excel中数据和将数据(权重矩阵)存到Excel中的两个功能...

weixin_39963341的博客 143

Python数学建模中的线性代数实战:特征值与SVD降维应用

线性代数是数学建模的底层操作系统,而非辅助工具;其核心在于通过矩阵表示现实问题,并利用特征值分解(EVD)和奇异值分解(SVD)揭示数据结构本质。EVD适用于方阵,用于稳定性诊断、主成分提取与矩阵函数计算;SVD则普适于任意矩阵,提供最优低秩逼近、噪声抑制与隐语义挖掘能力。在Python工程实践中,numpy.linalg.svd()与scipy.linalg.eigh()等工具链可高效支撑高维数据降维、病态矩阵诊断与模型鲁棒性提升,广泛应用于交通预测、安检优化、图像压缩及推荐系统等真实建模场景。本文聚焦P

weixin_30437847的博客 362
上一篇: Excel:VBA操作单元格对象
下一篇: 机器学习:协方差的全面理解
Be-real
博客等级 码龄8年 162粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值