转:numpy.linalg.eig() 计算矩阵特征向量

https://blog.csdn.net/chixujohnny/article/details/51063617

在PCA中有遇到,在这里记录一下

计算矩阵的特征值个特征向量,下面给出几个示例代码:

在使用前需要单独import一下

>>> from numpy import linalg as LA

>>> w, v = LA.eig(np.diag((1, 2, 3)))
>>> w; v
array([ 1., 2., 3.])
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])

>>> w, v = LA.eig(np.array([[1, -1], [1, 1]]))
>>> w; v
array([ 1. + 1.j, 1. - 1.j])
array([[ 0.70710678+0.j , 0.70710678+0.j ],
[ 0.00000000-0.70710678j, 0.00000000+0.70710678j]])

>>> a = np.array([[1, 1j], [-1j, 1]])
>>> w, v = LA.eig(a)
>>> w; v
array([ 2.00000000e+00+0.j, 5.98651912e-36+0.j]) # i.e., {2, 0}
array([[ 0.00000000+0.70710678j, 0.70710678+0.j ],
[ 0.70710678+0.j , 0.00000000+0.70710678j]])

>>> a = np.array([[1 + 1e-9, 0], [0, 1 - 1e-9]])
>>> # Theor. e-values are 1 +/- 1e-9
>>> w, v = LA.eig(a)
>>> w; v
array([ 1., 1.])
array([[ 1., 0.],
[ 0., 1.]])

官方文档链接:http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eig.html
---------------------
作者:chixujohnny
来源:CSDN
原文:https://blog.csdn.net/chixujohnny/article/details/51063617
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/ruogu2019/p/10287985.html

时间: 2024-08-29 10:24:46

转:numpy.linalg.eig() 计算矩阵特征向量的相关文章

numpy.linalg.eig

1.转置对于二维数组有用,对一位数组无效 2.理解特征值和特征向量的对应关系 a=np.array([[1 ,2, 3],[4, 5, 6],[7, 8, 9]]) a Out[27]: array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) w,v = LA.eig(a) w Out[29]: array([ 1.61168440e+01, -1.11684397e+00, -1.30367773e-15]) v Out[30]: array([[-0.2319706

numpy linalg模块

# 线性代数# numpy.linalg模块包含线性代数的函数.使用这个模块,可以计算逆矩阵.求特征值.解线性方程组以及求解行列式等. import numpy as np # 1. 计算逆矩阵# 创建矩阵A = np.mat("0 1 2;1 0 3;4 -3 8")print (A)#[[ 0 1 2]# [ 1 0 3]# [ 4 -3 8]] # 使用inv函数计算逆矩阵inv = np.linalg.inv(A)print (inv)#[[-4.5 7. -1.5]# [-2

Numpy学习--多维矩阵“理解 : 的用法”

:(冒号)在多维数组选快儿时经常会用到,今天特此做下笔记. #############创建numpy数组 #1111111定义普通数组 #先直接定义是一个list list1 = [[2,3,1,1],[3,4,5,7],[3,1,6,1]] #然后np.array() 把list 变成数组 array = np.array(list1) #2222222 定义空数组 #全1 数组用ones zero =np.zeros((3,2)) print zero ################ #数

numpy中的matrix矩阵处理

numpy模块中的矩阵对象为numpy.matrix,包括矩阵数据的处理,矩阵的计算,以及基本的统计功能,转置,可逆性等等,包括对复数的处理,均在matrix对象中. class numpy.matrix(data,dtype,copy):返回一个矩阵,其中data为ndarray对象或者字符形式:dtype:为data的type:copy:为bool类型. >>> a = np.matrix('1 2 7; 3 4 8; 5 6 9') >>> a          

Armadillo之计算矩阵的行列式(determinant)

计算矩阵的行列式很简单,用det方法或是log_det方法 1 det(A) 如果A不是方阵的(square),将抛出std::logic_error异常 例: mat m = "3,2,4;1,-2,3;2,3,2;"; double d = det(m); cout << d << endl; 运行结果是-3 2 log_det(value, sign,A) 文档里推荐当矩阵A比较大时,使用本函数来代替det函数(估计会加快计算速度) det(A)=exp(

【原创】开源Math.NET基础数学类库使用(16)C#计算矩阵秩

               本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源Math.NET基础数学类库使用总目录:http://www.cnblogs.com/asxinyu/p/4329737.html 上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程组以及随机数发生器的相关内容.这个月接着深入发掘Math.NET的各种功能,并对

03:计算矩阵边缘元素之和

03:计算矩阵边缘元素之和 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个整数矩阵,计算位于矩阵边缘的元素之和.所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素. 输入 第一行分别为矩阵的行数m和列数n(m < 100,n < 100),两者之间以一个空格分开.接下来输入的m行数据中,每行包含n个整数,整数之间以一个空格分开. 输出 输出对应矩阵的边缘元素和 样例输入 3 3 3 4 1 3 7 1 2 0 1 样例输出

【原创】开源Math.NET基础数学类库使用(17)C#计算矩阵条件数

               本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源Math.NET基础数学类库使用总目录:http://www.cnblogs.com/asxinyu/p/4329737.html 上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程组以及随机数发生器的相关内容.这个月接着深入发掘Math.NET的各种功能,并对

开源Math.NET基础数学类库使用(17)C#计算矩阵条件数

原文:[原创]开源Math.NET基础数学类库使用(17)C#计算矩阵条件数                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源Math.NET基础数学类库使用总目录:http://www.cnblogs.com/asxinyu/p/4329737.html 上个月对Math.NET的基本使用进行了介绍,主要内容有矩阵,向量的相关操作,解析数据格式,数值积分,数据统计,相关函数,求解线性方程组