numpy 矩阵运算
8.2 矩阵(Matrix)对象
Matrix类型继承于ndarray类型,因此含有ndarray的所有数据属性和方法。Matrix类型与ndarray类型有六个重要的不同点,当你当Matrix对象当arrays操作时,这些不同点会导致非预期的结果。
1)Matrix对象可以使用一个Matlab风格的字符串来创建,也就是一个以空格分隔列,以分号分隔行的字符串。
2)Matrix对象总是二维的。这包含有深远的影响,比如m.ravel()的返回值是二维的,成员选择的返回值也是二维的,因此序列的行为与array会有本质的不同。
3)Matrix类型的乘法覆盖了array的乘法,使用的是矩阵的乘法运算。当你接收矩阵的返回值的时候,确保你已经理解这些函数的含义。特别地,事实上函数asanyarray(m)会返回一个matrix,如果m是一个matrix。
4)Matrix类型的幂运算也覆盖了之前的幂运算,使用矩阵的幂。根据这个事实,再提醒一下,如果使用一个矩阵的幂作为参数调用asanarray(...)跟上面的相同。
5)矩阵默认的__array_priority__是10.0,因而ndarray和matrix对象混合的运算总是返回矩阵。
6)矩阵有几个特有的属性使得计算更加容易,这些属性有:
(a) .T -- 返回自身的转置
(b) .H -- 返回自身的共轭转置
(c) .I -- 返回自身的逆矩阵
(d) .A -- 返回自身数据的2维数组的一个视图(没有做任何的拷贝)
Matrix类 是ndarray的一个Python子类,你也可以学习这个实现来构造自己的ndarray子类。Matrix对象也可以使用其它的Matrix对象,字 符串,或者其它的可以转换为一个ndarray的参数来构造。另外,在NumPy里,“mat”是“matrix”的一个别名。
例1: 使用字符串构造矩阵
|
>>> from numpy import * >>> a=mat('1 2 3; 4 5 3') >>> print (a*a.T).I [[ 0.29239766 -0.13450292] [-0.13450292 0.08187135]] |
例2: 使用嵌套序列构造矩阵
|
>>> mat( [ [1,5,10],[1.0,3,4j] ]) matrix([[ 1.+0.j, 5.+0.j, 10.+0.j], [ 1.+0.j, 3.+0.j, 0.+4.j]]) |
例3: 使用一个数组构造矩阵
|
>>> mat( random.rand(3,3) ).T matrix([[ 0.81541602, 0.73987459, 0.03509142], [ 0.14767449, 0.60539483, 0.05641679], [ 0.43257759, 0.628695 , 0.47413553]]) |
Matrix( data, dtype=None, copy=True )
将 以参数data传进来的数据转换为矩阵。如果dtype是None,那么数据类型将由data的内容来决定。如果copy为True,则会拷贝data中 的数据,否则会使用原来的数据缓冲。如果没有找到数据的缓冲区,当然也会进行数据的拷贝。注意:矩阵matrix事实上是一个类型,因此当你构造实例的时 候会调用matrix.__new__(matrix, data, dtype, copy)。
Mat
只是matrix的一个别名。
Asmatrix(data, dtype=None)
返回不经过复制的数据。等价于matrix(data, dtype, copy=False)。
Bmat(obj, ldict=None, gdict=None)
使用一个字符串,嵌套的序列或者一个数组(array)构造一个矩阵。这个命令允许你从其它的对象来建立起矩阵。其中当obj是一个字符串的时候才会使用参数ldict和gdict,这两个参数是局部和模块的字典。如果你没有提供它们,这些将由系统提供。
>>> A=mat('2 2; 2 2'); B=mat('1 1; 1 1');
>>> print bmat('A B; B A')
[[2 2 1 1]
[2 2 1 1]
[1 1 2 2]
[1 1 2 2]]
numpy 矩阵运算的更多相关文章
- python中numpy矩阵运算操作大全(非常全)!
python中numpy矩阵运算操作大全(非常全) //2019.07.10晚python矩阵运算大全1.矩阵的输出形式:对于任何一个矩阵,python输出的模板是:import numpy as n ...
- [Python学习] python 科学计算库NumPy—矩阵运算
NumPy库的核心是矩阵及其运算. 使用array()函数可以将python的array_like数据转变成数组形式,使用matrix()函数转变成矩阵形式. 基于习惯,在实际使用中较常用array而 ...
- 理解数学公式与numpy矩阵运算
1.矩阵的初始化 (1)创建一个 3*5的全0矩阵和全1矩阵 import numpy as np myzero = np.zeros([3,5]) print myzero myones = np. ...
- numpy矩阵运算--矩阵乘法
1)元素对应相乘,使用 multiply 函数或 * 运算符来实现 a = np.array([2,2,2])b = np.array([3,3,3]) c1 = a*a c1 array([4, 4 ...
- Numpy和Pandas的使用入门
Numpy Numpy基本数据结构 np.array()函数接受一个多维list,返回对应纬度的矩阵 vector = np.array([1, 2, 3, 4]) matrix = np.array ...
- Python numpy 浮点数精度问题
Python numpy 浮点数精度问题 在复现FP(fictitious play, Iterative solution of games by fictitious play-page393)算 ...
- 极简反传(BP)神经网络
一.两层神经网络(感知机) import numpy as np '''极简两层反传(BP)神经网络''' # 样本 X = np.array([[0,0,1],[0,1,1],[1,0,1],[1, ...
- Jupyter Notebook 的安装使用以及 tree 路径变更
由于最近开始学习 Python,进而接触到一个十分强大的交互式编辑器 — Jupyter Notebook,用起来也非常顺手,于是记录一下相关的使用过程. 一.安装 Python: ①首先前往 pyt ...
- K-mean聚类算法汇聚有用信息——学习笔记
无监督-无标签 聚类,难点在于评估和调参. k-means最简单实用 基本概念 K值:数据聚成多少类. 质心:各个维度算平均数.Centroid 相似度量:距离来算(欧式距离——直线距离,余弦距离) ...
随机推荐
- css预处理器 sass和stylus对比以及常用功能
在众多的css预处理器语言中,sass和stylus算是十分优秀的两个.本文主要针对两者的常用功能做个简单的对比分析.在对比中了解二者的差异,同时帮助大家更好的掌握这两种预处理语言. 本文涉及到的sa ...
- linux 测试远程主机端口
检测远程端口是否打开 常用telnet 110.101.101.101 80方式测试远程主机端口是否打开. 除此之外还可以使用: 方法1.nmap ip -p port 测试端口 nmap ip 显示 ...
- Perf -- Linux下的系统性能调优工具,第 2 部分 特殊用法以及内核调优示例
https://www.ibm.com/developerworks/cn/linux/l-cn-perf2/ 本文内容简介 之前介绍了 perf 最常见的一些用法,关注于 Linux 系统上应用程序 ...
- Textchangedlistener的用法
searchet.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequ ...
- thinkphp3.2.3 ueditor1.4.3 图片上传操作,在线删除上传图片功能。
最近弄一个图片 上传,可是用ueditor 自带的上传,如果不配置的话,上传的目录不在自己的项目中. 在网上找了好多,可是都是底版本的,新版本的还真是找到了一个,ueditor-thinkphp 这个 ...
- (转)linux route命令深入浅出与实战案例精讲
linux route命令深入浅出与实战案例精讲 http://blog.51cto.com/oldboy/1119453 深入浅出之-route命令实战使用指南 http://blog.51cto. ...
- 动态配置log4j2.xml日志输出文件的位置
目标:根据启动jar时传进main()的参数动态修改日志位置 一.修改启动项 MainMapLookup.setMainArguments(args);注:不要在lookup设置之前初始化log(如: ...
- [巩固C#] 二、什么是反射、反射可以做些什么
阅读目录 关闭 什么是反射,反射能干嘛? 获取类型的相关信息 获取类型本身信息(命名空间名.全名.是否是抽象.是否是类..... 获取类型成员信息(通过Tyep中的方法GetMembers ...
- XtraReport三动态数据绑定
代码还用上一节的,把Report的Datasource去掉.各个绑定的字段也去掉,有了第二节的基础,现在看这个就不难了,无非就是传到report一个数据集,在把这个数据集绑定到各控件里 清空detai ...
- 【第一篇笔记】C# 全局容错,全局异常
网上找到两个方式,一个简单的只是做个记录,另一个能像QQ一样提交到后台. 方法一: static class Program { /// <summary> /// 应用程序的主入口点. ...