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. 前后端分离djangorestframework—— 接入微信模板消息推送

    微信 什么是微信也不多说,跟前面的支付宝一样的 微信支付 微信支付也有个沙箱环境,沙箱环境官方文档 由文档中那句很显眼的话所得,即使是测试环境也需要真实的商户号,所以这个就没法想支付宝那样用沙箱账号来 ...

  2. UGUI合批原理笔记

    可以通过Frame debugger查看每个drawcall绘制了哪些东西 UGUI源码下载地址:https://bitbucket.org/Unity-Technologies/ui/downloa ...

  3. mybatis使用oracle的nulls first/nulls last

    nulls first/nulls last 顾名思义,就是在检索结果集里,有null值的时候,把null值认为是最大值,还是最小值. nulls first 放置在结果集最前面 nulls last ...

  4. SQLServer之创建INSTEAD OF INSERT,UPDATE,DELETE触发器

    INSTEAD OF触发器工作原理 INSTEAD OF表示并不执行其所定义的操作INSERT,UPDATE ,DELETE,而仅是执行触发器本身,即当对表进行INSERT.UPDATE 或 DELE ...

  5. 既然CPU同一时间只能执行一个线程,为什么存在并发问题

    一点小疑惑终于解开啦 1.CPU的时间是按时间片分的,而不是一个时间点,并发问题是由于CPU线程切换导致的. 现在假设有一段代码 if(i == 1) { i++; //断点1 system.out. ...

  6. 消耗CPU和内存的脚本

    用法 ./shell.sh 4 (4为4内核) 查看cpu内核数量 > lscpu 执行后会出现一堆kill命令,方便kill掉进程 #!/bin/bash endless_loop() { e ...

  7. 【vue】移动端demo资料

    http://imzjh.com/inew/#/(移动端demo) https://github.com/liangxiaojuan/eleme(饿了么git地址) https://github.co ...

  8. [LeetCode]2. 两数相加

    题目链接:https://leetcode-cn.com/problems/add-two-numbers/ 题目描述: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 ...

  9. Surjectivity is stable under base change

    Nowadays, I close a new small case. Proposition. For a surjective morphism between scheme $X\stackre ...

  10. c++入门之函数指针和函数对象

    函数指针可以方便我们调用函数,但采用函数对象,更能体现c++面向对象的程序特性.函数对象的本质:()运算符的重载.我们通过一段代码来感受函数指针和函数对象的使用: int AddFunc(int a, ...