Numpy库进阶教程(二)

第一篇在这里:Numpy库进阶教程(一)求解线性方程组

求解特征值和特征向量

关于特征值和特征向量的介绍,可以点击这里

首先创建一个矩阵

In [1]: A=mat("3 -2;1 0")

In [2]: A
Out[2]:
matrix([[ 3, -2],
        [ 1,  0]])

在numpy.linalg模块中,eigvals函数可以计算矩阵的特征值,而eig函数可以返回一个包含特征值和对应特征向量的元组。

使用eigvals函数求解特征值

In [3]: linalg.eigvals(A)
Out[3]: array([ 2.,  1.])

使用eig函数求解特征值和特征向量。该函数将返回一个元祖,按列排放着特征值和对应的特征向量,其中第一列为特征值,第二列为特征向量。

In [5]: B=eig(A)

In [6]: B
Out[6]:
(array([ 2.,  1.]), matrix([[ 0.89442719,  0.70710678],
         [ 0.4472136 ,  0.70710678]]))

使用dot函数使矩阵相乘验证求得的解是否正确

eigenvalues, eigenvectors = np.linalg.eig(A)
print "First tuple of eig", eigenvalues
print "Second tuple of eig\n", eigenvectors

for i in range(len(eigenvalues)):
      print "Left", np.dot(A, eigenvectors[:,i])
      print "Right", eigenvalues[i] * eigenvectors[:,i]
      print

输出为

Left [[ 1.78885438]
 [ 0.89442719]]
Right [[ 1.78885438]
 [ 0.89442719]]

Left [[ 0.70710678]
 [ 0.70710678]]
Right [[ 0.70710678]
 [ 0.70710678]]

计算矩阵行列式

In [51]: A = np.mat("3 4;5 6")

In [52]: print "A\n", A
A
[[3 4]
 [5 6]]

使用det函数计算行列式

In [53]: print "Determinant", np.linalg.det(A)
Determinant -2.0
时间: 2024-10-11 21:46:55

Numpy库进阶教程(二)的相关文章

Android高手进阶教程(二十八)之---Android ViewPager控件的使用(基于ViewPager的横向相册)!!!

分类: Android高手进阶 Android基础教程 2012-09-14 18:10 29759人阅读 评论(35) 收藏 举报 android相册layoutobjectclassloaderencoding 大家好,相信大家用的ListView控件一定很多的,是竖向滑动的,复用convertView,我们可以加载成千上万的数据,但有时候我们会有 这个需求比如相册,我们想横向滑动,并且数据有好多,这时候ViewPager控件就派上用场了,ViewPager使用时候我们需要导入第三方包 an

Android高手进阶教程(二十)之---Android与JavaScript方法相互调用!

在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用android方法,在这里我个人觉得有点和DWR相似. 为了让大家容易理解,我写了一个简单的Demo,具体步骤如下: 第一步:新建一个Android工程,命名为WebViewDemo(这里我在assets里定义了一个html页面). 第二步:修改main.xml布局文件,增加了一个WebView控件还有But

NumPy的详细教程

NumPy的详细教程 转载 http://blog.csdn.net/chen_shiqiang/article/details/51868115 先决条件 在阅读这个教程之前,你多少需要知道点python.如果你想从新回忆下,请看看 Python Tutorial . 如果你想要运行教程中的示例,你至少需要在你的电脑上安装了以下一些软件: Python NumPy 这些是可能对你有帮助的: ipython 是一个净强化的交互Python Shell,对探索NumPy的特性非常方便. matpl

NumPy简单入门教程

# NumPy简单入门教程 NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组.它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在原生Python中永远无法体验到的速度. NumPy绝对是科学Python成功的关键之一,如果你想要进入Python中的数据科学和/或机器学习,你就要必须学习它.在我看来,NumPy的API设计得很好,所以我们要开始使用它并不困难. 这是一系列关于科学Python的文章中的第二篇,别忘了看看其他

duilib进阶教程 -- 响应windows原生消息和自定义消息(13)

duilib进阶教程 -- 响应windows原生消息和自定义消息(13) 一.windows原生消息 同样,入门教程只是给出了响应windows原生消息的方法,并没给出例子,这里以自适应屏幕分辨率为例.迅雷播放器虽然可以在启动的时候自动调整窗口大小,但是当屏幕分辨率实时改变时并没有调整窗口,所以我们给播放器加上实时调整大小的功能,很明显,应该响应WM_DISPLAYCHANGE消息,而duilib自己处理windows消息的函数是在HandleMessage里,因此我们重载HandleMess

数值编程工具:NumPy的详细教程

翻译原文来自:http://wiki.scipy.org/Tentative_NumPy_Tutorial 目录 1.准备工作 2.基础篇 一个例子 创建数组 打印数组 基本运算 通用函数(ufunc) 索引,切片和迭代 3.形状操作 更改数组的形状 组合(stack)不同的数组 将一个数组分割(split)成几个小数组 4.复制和视图 完全不拷贝 视图(view)和浅复制 5.深复制 函数和方法(method)总览 6.进阶 广播法则(rule) 7.花哨的索引和索引技巧 通过数组索引 通过布

NumPy库实现矩阵计算

随着机器学习技术越来越向着整个社会进行推广,因此学好线性代数和Python当中的numpy库就相当重要了.我们应该知道numpy库的使用是sklearn库和opencv库的基础.主要用于矩阵的计算.当然,我们做做数模或者人工神经网络建模也可以使用MATLAB.不过现在Python才是现在的主流,因为Python可以用于服务器后台的实现,不仅仅看可以用于科研,还可以做出一些比较实用的一些东西.如果还想用于物联网等领域的话,则可以使用C++进行算法的实现.因为我们在嵌入式开发当中,一般使用的是lin

数据分析之Numpy库入门

1.列表与数组 在python的基础语言部分,我们并没有介绍数组类型,但是像C.Java等语言都是有数组类型的,那python中的列表和数组有何区别呢? 一维数据:都表示一组数据的有序结构 区别: 列表:数据类型可以不同,如:[3.1413,'pi',3.1404,[3.1402,2.34],'3.2376'] 数组:数据类型相同 .如[3.14,34.34,3433.3,343.23] 二维数据:二维数据由多个一维数据构成,是一维数据的集合形式!表格是典型的二维数据! 注意:表格的表头,可以是

点赞和吐糟Adblock Plus~进阶教程

前言:Adblock Plus后文都简称ABP,这是一篇ABP进阶教程!用ABP实现flashBlock和NoScript.推荐有相当基础的阅读!初学者先看懂这里:http://adblockplus.org/zh_CN/filters 先夸夸ABP,它是最流行.语法最完善严谨的过滤软件,其它同类都以它为标准!它把网络资源按以下选项分几大类: script -- 外部脚本,由 HTML script 标签加载 image -- 正常图片,通常由 HTML 的 img 标签所载入 styleshe