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 #矩阵的换行必须是用分号(;)隔开,内部数据必须为字符串形式(‘ ’),矩
matrix([[1, 2, 7], #阵的元素之间必须以空格隔开。
[3, 4, 8],
[5, 6, 9]]) >>> b=np.array([[1,5],[3,2]])
>>> x=np.matrix(b) #矩阵中的data可以为数组对象。
>>> x
matrix([[1, 5],
[3, 2]])

矩阵对象的属性:

  • matrix.T transpose:返回矩阵的转置矩阵
  • matrix.H hermitian (conjugate) transpose:返回复数矩阵的共轭元素矩阵
  • matrix.I inverse:返回矩阵的逆矩阵
  • matrix.A base array:返回矩阵基于的数组
  • 矩阵对象的方法:
  • all([axis, out]) :沿给定的轴判断矩阵所有元素是否为真(非0即为真)
  • any([axis, out]) :沿给定轴的方向判断矩阵元素是否为真,只要一个元素为真则为真。
  • argmax([axis, out]) :沿给定轴的方向返回最大元素的索引(最大元素的位置).
  • argmin([axis, out]): 沿给定轴的方向返回最小元素的索引(最小元素的位置)
  • argsort([axis, kind, order]) :返回排序后的索引矩阵
  • astype(dtype[, order, casting, subok, copy]):将该矩阵数据复制,且数据类型为指定的数据类型
  • byteswap(inplace) Swap the bytes of the array elements
  • choose(choices[, out, mode]) :根据给定的索引得到一个新的数据矩阵(索引从choices给定)
  • clip(a_min, a_max[, out]) :返回新的矩阵,比给定元素大的元素为a_max,小的为a_min
  • compress(condition[, axis, out]) :返回满足条件的矩阵
  • conj() :返回复数的共轭复数
  • conjugate() :返回所有复数的共轭复数元素
  • copy([order]) :复制一个矩阵并赋给另外一个对象,b=a.copy()
  • cumprod([axis, dtype, out]) :返回沿指定轴的元素累积矩阵
  • cumsum([axis, dtype, out]) :返回沿指定轴的元素累积和矩阵
  • diagonal([offset, axis1, axis2]) :返回矩阵中对角线的数据
  • dot(b[, out]) :两个矩阵的点乘
  • dump(file) :将矩阵存储为指定文件,可以通过pickle.loads()或者numpy.loads()如:a.dump(‘d:\\a.txt’)
  • dumps() :将矩阵的数据转存为字符串.
  • fill(value) :将矩阵中的所有元素填充为指定的value
  • flatten([order]) :将矩阵转化为一个一维的形式,但是还是matrix对象
  • getA() :返回自己,但是作为ndarray返回
  • getA1():返回一个扁平(一维)的数组(ndarray)
  • getH() :返回自身的共轭复数转置矩阵
  • getI() :返回本身的逆矩阵
  • getT() :返回本身的转置矩阵
  • max([axis, out]) :返回指定轴的最大值
  • mean([axis, dtype, out]) :沿给定轴方向,返回其均值
  • min([axis, out]) :返回指定轴的最小值
  • nonzero() :返回非零元素的索引矩阵
  • prod([axis, dtype, out]) :返回指定轴方型上,矩阵元素的乘积.
  • ptp([axis, out]) :返回指定轴方向的最大值减去最小值.
  • put(indices, values[, mode]) :用给定的value替换矩阵本身给定索引(indices)位置的值
  • ravel([order]) :返回一个数组,该数组是一维数组或平数组
  • repeat(repeats[, axis]) :重复矩阵中的元素,可以沿指定轴方向重复矩阵元素,repeats为重复次数
  • reshape(shape[, order]) :改变矩阵的大小,如:reshape([2,3])
  • resize(new_shape[, refcheck]) :改变该数据的尺寸大小
  • round([decimals, out]) :返回指定精度后的矩阵,指定的位数采用四舍五入,若为1,则保留一位小数
  • searchsorted(v[, side, sorter]) :搜索V在矩阵中的索引位置
  • sort([axis, kind, order]) :对矩阵进行排序或者按轴的方向进行排序
  • squeeze([axis]) :移除长度为1的轴
  • std([axis, dtype, out, ddof]) :沿指定轴的方向,返回元素的标准差.
  • sum([axis, dtype, out]) :沿指定轴的方向,返回其元素的总和
  • swapaxes(axis1, axis2):交换两个轴方向上的数据.
  • take(indices[, axis, out, mode]) :提取指定索引位置的数据,并以一维数组或者矩阵返回(主要取决axis)
  • tofile(fid[, sep, format]) :将矩阵中的数据以二进制写入到文件
  • tolist() :将矩阵转化为列表形式
  • tostring([order]):将矩阵转化为python的字符串.
  • trace([offset, axis1, axis2, dtype, out]):返回对角线元素之和
  • transpose(*axes) :返回矩阵的转置矩阵,不改变原有矩阵
  • var([axis, dtype, out, ddof]) :沿指定轴方向,返回矩阵元素的方差
  • view([dtype, type]) :生成一个相同数据,但是类型为指定新类型的矩阵。

代码示例

>>> a = np.asmatrix('0 2 7; 3 4 8; 5 0 9')
>>> a.all()
False
>>> a.all(axis=0)
matrix([[False, False, True]], dtype=bool)
>>> a.all(axis=1)
matrix([[False],
[ True],
[False]], dtype=bool) ü Astype方法
>>> a.astype(float)
matrix([[ 12., 3., 5.],
[ 32., 23., 9.],
[ 10., -14., 78.]]) ü Argsort方法
>>> a=np.matrix('12 3 5; 32 23 9; 10 -14 78')
>>> a.argsort()
matrix([[1, 2, 0],
[2, 1, 0],
[1, 0, 2]]) ü Clip方法
>>> a
matrix([[ 12, 3, 5],
[ 32, 23, 9],
[ 10, -14, 78]])
>>> a.clip(12,32)
matrix([[12, 12, 12],
[32, 23, 12],
[12, 12, 32]]) ü Cumprod方法
>>> a.cumprod(axis=1)
matrix([[ 12, 36, 180],
[ 32, 736, 6624],
[ 10, -140, -10920]]) ü Cumsum方法
>>> a.cumsum(axis=1)
matrix([[12, 15, 20],
[32, 55, 64],
[10, -4, 74]]) ü Tolist方法
>>> b.tolist()
[[12, 3, 5], [32, 23, 9], [10, -14, 78]] ü Tofile方法
>>> b.tofile('d:\\b.txt') ü compress()方法
>>> from numpy import *
>>> a = array([10, 20, 30, 40])
>>> condition = (a > 15) & (a < 35)
>>> condition
array([False, True, True, False], dtype=bool)
>>> a.compress(condition)
array([20, 30])
>>> a[condition] # same effect
array([20, 30])
>>> compress(a >= 30, a) # this form a
so exists
array([30, 40])
>>> b = array([[10,20,30],[40,50,60]])
>>> b.compress(b.ravel() >= 22)
array([30, 40, 50, 60])
>>> x = array([3,1,2])
>>> y = array([50, 101])
>>> b.compress(x >= 2, axis=1) # illustrates
the use of the axis keyword
array([[10, 30],
[40, 60]])
>>> b.compress(y >= 100, axis=0)
array([[40, 50, 60]])

  

Numpy系列(十二)- 矩阵运算的更多相关文章

  1. Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)【系列十二】

    2012年12月12日,[<Web 前端开发人员和设计师必读文章>系列十二]和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HT ...

  2. SQL Server 2008空间数据应用系列十二:Bing Maps中呈现GeoRSS订阅的空间数据

    原文:SQL Server 2008空间数据应用系列十二:Bing Maps中呈现GeoRSS订阅的空间数据 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Se ...

  3. Alamofire源码解读系列(十二)之请求(Request)

    本篇是Alamofire中的请求抽象层的讲解 前言 在Alamofire中,围绕着Request,设计了很多额外的特性,这也恰恰表明,Request是所有请求的基础部分和发起点.这无疑给我们一个Req ...

  4. struts2官方 中文教程 系列十二:控制标签

    介绍 struts2有一些控制语句的标签,本教程中我们将讨论如何使用 if 和iterator 标签.更多的控制标签可以参见 tags reference. 到此我们新建一个struts2 web 项 ...

  5. 爬虫系列(十二) selenium的基本使用

    一.selenium 简介 随着网络技术的发展,目前大部分网站都采用动态加载技术,常见的有 JavaScript 动态渲染和 Ajax 动态加载 对于爬取这些网站,一般有两种思路: 分析 Ajax 请 ...

  6. Alamofire源码解读系列(十二)之时间轴(Timeline)

    本篇带来Alamofire中关于Timeline的一些思路 前言 Timeline翻译后的意思是时间轴,可以表示一个事件从开始到结束的时间节点.时间轴的概念能够应用在很多地方,比如说微博的主页就是一个 ...

  7. 学习ASP.NET Core Razor 编程系列十二——在页面中增加校验

    学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...

  8. SpringBoot系列(十二)过滤器配置详解

    SpringBoot(十二)过滤器详解 往期精彩推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件 ...

  9. 打开order by的大门,一探究竟《死磕MySQL系列 十二》

    在日常开发工作中,你一定会经常遇到要根据指定字段进行排序的需求. 这时,你的SQL语句类似这样. select id,phone,code from evt_sms where phone like  ...

  10. 4.12Python数据处理篇之Matplotlib系列(十二)---绘图风格的介绍

    目录 目录 前言 (一)不同风格 1.说明: 2.使用: 3.代码使用: (二)例子演示 1.dark_background 2.bmh 3.fivethirtyeight 4.ggplot 5.gr ...

随机推荐

  1. CF_#478_Div.2_Hag's Khashba

    做的正儿八经的计算几何题不多,慢慢来吧. 题目描述: http://codeforces.com/contest/975/problem/E 大意就是说给你一个凸多边形,一开始1,2两点有钉子固定在墙 ...

  2. 如何使用PowerDesigner建表

    说明 个人认为,直接使用数据库管理工具如Navicat直接建表,如果后期需要进行库的迁移,不是那么方便,不如直接在PowerDesigner里面建表,更自由一些 版本:PowerDesigner15 ...

  3. const int *p;int *const p;区别及用法

    在单片机程序设计中,我们经常会用到const这个关键字,在有些单片机的编译器中可能会是code(比如51系列单片机),但我们在学习C语言的时候,首先还是先学到的const.我们知道,const关键字的 ...

  4. GDB调试指南-启动调试

    前言 GDB(GNU Debugger)是UNIX及UNIX-like下的强大调试工具,可以调试ada, c, c++, asm, minimal, d, fortran, objective-c, ...

  5. FutureTask并发详解,通俗易懂

    最近做项目,使用到了FutureTask和主线程并发,应用到实际中还是挺实用的,特在此总结一下. 有不对之处,忘各位多多指出. package com.demo; import java.util.c ...

  6. RabbitMQ广播:direct模式

    一. 消息的广播需要exchange:exchange是一个转发器,其实把消息发给RabbitMQ里的exchange fanout: 所有bind到此exchange的queue都可以接收消息,广播 ...

  7. java程序启动 环境属性的获取

    System.getProperties().list(System.out); 如果要获取某一个属性,例如常见的“操作系统” 则  System.getProperty("os.name& ...

  8. vue 在safari动态多级面包屑导航样式不刷新的bug

    前言: 最近做公司的管理系统,用到了elementUI 里面的 bread面包屑组件,本来一切好好的,谁知道mac的safari样式全部缓存了,硬是下面这种效果,真头疼 而chrome,QQ均显示正常 ...

  9. 创建DVWA环境时遇到的问题

    前言:我下载了PHP Study,也按照步骤下载保存了DVWA,之后我又按照百度的准备登陆检查是否正确安装DVWA,于是,我登录了百度上查到的链接:http://localhost/DVWA-mast ...

  10. 2019-04-15 python深浅复制

    原作地址:https://www.cnblogs.com/xueli/p/4952063.html 在python中,对象赋值实际上是对象的引用.当创建一个对象,然后把它赋给另一个变量的时候,pyth ...