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. js 学习之路4:js运行/输出中文乱码问题解决

    网上找了一个简单的例子,编写出来很简单,但是乱码的问题稍微困扰了一下. 题目: 1. 大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食,要用100匹马,驮100石粮食,该如何调配? js解决代码: ...

  2. Cs231n-assignment 1作业笔记

    KNN assignment1 KNN讲解参见: https://blog.csdn.net/u014485485/article/details/79433514?utm_source=blogxg ...

  3. LeetCode算法题-Set Mismatch(Java实现)

    这是悦乐书的第279次更新,第295篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第147题(顺位题号是645).集合S最初包含从1到n的数字. 但不幸的是,由于数据错误 ...

  4. SAP Change Request Management (ChaRM)基础教程

    本文介绍了SAP Solution Manager中的变更请求管理工具(Change Request Management,以下简称ChaRM ). 最近打算写个上线前请求号检查工具,为此需要了解相关 ...

  5. 【Python 15】分形树绘制3.0(递归函数)

    1.案例描述 将递归函数与循环函数结合绘制2.0的图形 2.案例分析 3.上机实验 """ 作者:梁斌 功能:五角星的绘制 版本:3.0 日期:03/08/2017 新增 ...

  6. HBase工具:如何查看HBase的HFile

    root@root:~/Desktop/sourceCodes/hbase-2.1.1/bin# ./hbase Usage: hbase [<options>] <command& ...

  7. UVALive - 4287 - Proving Equivalences(强连通分量)

    Problem   UVALive - 4287 - Proving Equivalences Time Limit: 3000 mSec Problem Description Input Outp ...

  8. Linux实战教学笔记50:Zabbix监控平台3.2.4(二)深入理解zabbix

    https://www.cnblogs.com/chensiqiqi/p/9162986.html 一,Zabbix Web操作深入 1.1 Zabbix Web下的主机和模版以及监控项的添加方式 ( ...

  9. drawer

    import 'package:flutter/material.dart'; class DrawerPage extends StatefulWidget { @override _DrawerP ...

  10. Re:Exgcd解二元不定方程

    模拟又炸了,我死亡 $exgcd$(扩展欧几里德算法)用于求$ax+by=gcd(a,b)$中$x,y$的一组解,它有很多应用,比如解二元不定方程.求逆元等等,这里详细讲解一下$exgcd$的原理. ...