从机器学习学python(四) ——numpy矩阵基础
从机器学习学python(四)——numpy矩阵基础
(原创内容,转载请注明来源,谢谢)
一、numpy中matrix 和 array的区别
Numpymatrices必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。
在numpy中matrix的主要优势是:相对简单的乘法运算符号。例如,a和b是两个matrices,那么a*b,就是矩阵积。
即用matrix计算时,加减乘除都是矩阵运算,而不是简单的运算。
二、矩阵和数组的转换
数组转矩阵:A = mat(s[]) ;矩阵转换数组:s[]= A.getA()
举例:
s=[[4,2],[3,2],[3,1]]
A =mat(s)
A
matrix([[4, 2],
[3, 2],
[3, 1]])
ss = A.getA()
ss
array([[4, 2],
[3, 2],
[3, 1]])
三、转置和轴对换
转置有三种方式,transpose方法、T属性以及swapaxes方法。
1、T属性
主要是针对二维数组,二维数组的T属性即转置。例如b=a.T表示矩阵b是矩阵a的转置。
2、transpose()
对于高维数组,转置需要确定转置方式。首先,矩阵的每个维度有个编号,从0开始编号,例如三维矩阵,则三个维度的编号分别是0、1、2。
a.transpose(0,1,2)即为a,表示a没有转置。a.transpose()则等价于a.transpose(2,1,1),表示完全的转置。而例如a.transpose(0,2,1)表示第三维和第二维进行的转换。
3、swapaxes()
这个方法和transpose方法类似,区别在于这个方法只接收两个参数,表示指定的两个维度的转换。例如a.swapaxes(1,2)等价于a.transpose(0,2,1)。注意到这里维度也是从0开始当作第一维的。
——written by linhxx 2018.01.17
- Java中实现判断括号是否有效的方法,实用代码
- Java中使用栈实现一个队列,实用代码
- NDK 的开发流程
- 蜜罐背后的影子系统探秘
- Oracle 免费的数据库--Database 快捷版 11g 安装使用与SOD框架对Oracle的CodeFirst支持
- 如何求最小三元组距离
- 如何将Pastebin上的信息应用于安全分析和威胁情报领域
- Optionsbleed 漏洞泄露 Apache Server 的内存信息
- 对两个有序数组进行合并
- No.016 3Sum Closest
- Java中实现解码字符串的方法,实用代码
- PDF.NET SOD 开源框架红包派送活动 && 新手快速入门指引
- No.015 3Sum
- Java 8新特性——提供了一种可以看作多重继承的默认方法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux环境搭建图数据库neo4j的讲解
- Linux编程之ICMP洪水攻击
- linux搭建squid代理服务器的完整步骤
- 使用wget递归镜像网站
- 整理Linux中字符串的相关操作技巧
- Ubuntu 16.04下无法安装.deb的解决方法
- 关于linux中系统输入输出的管理详解
- Linux下IP设置脚本的实例及遇到问题解决办法
- Linux与Windows文件互传(VMWare)
- 如何测试Linux下tcp最大连接数限制详解
- Linux中利用Vim对文件进行密码保护的方法详解
- Linux中禁止用户修改/重置密码
- 详解 MAC/Linux Vi配置环境变量及Java环境变量配置
- 扒开DMA映射的内裤
- 如何理解与识别Linux中的文件类型