Numpy中matrix()和array()的区别
matrix() 和 array() 的区别,主要从以下方面说起:
1. 矩阵生成方式不同
import numpy as np a1 = np.array([[1, 2], [3, 4]])
b1 = np.mat([[1, 2], [3, 4]]) a2 = np.array(([1, 2], [3, 4]))
b2 = np.mat(([1, 2], [3, 4])) a3 = np.array(((1,2), (3,4)))
b3 = np.mat(((1,2), (3,4))) b4 = np.mat('1 2; 3 4') print("\n",a1,"\n",b1,"\n",a2,"\n",b2,"\n",a3,"\n",b3,"\n",b4)
结果均为:
[[1 2]
[3 4]]
上述变化就是将 “[]” 换成“()”。不同之处在于 b4 内用引号、空格和分号来产生矩阵,这个方法只可以在 matrix() 函数中使用,即b4 = np.mat('1 2; 3 4')。不可以写成的 a4 = np.array('1 2; 3 4') 。
2. 矩阵性质不同
matrix()和 array ()后面加上 .T 得到转置。但是matrix()还可以在后面加 .H 得到共轭矩阵, 加 .I 得到逆矩阵, array()就不可以。
import numpy as np a1 = np.array([[1, 2], [3, 4]])
b1 = np.mat([[1, 2], [3, 4]]) print(a1.T)
print(b1.T)
[[1 3]
[2 4]]
[[1 3]
[2 4]]
import numpy as np
a1 = np.array([[1, 2], [3, 4]])
print(a1.H)
AttributeError: 'numpy.ndarray' object has no attribute 'H'
print(a1.I)
AttributeError: 'numpy.ndarray' object has no attribute 'I'
import numpy as np
b1 = np.mat([[1, 2], [3, 4]]) print(b1.H)
print(b1.I)
[[1 3]
[2 4]]
[[-2. 1. ]
[ 1.5 -0.5]]
3. 在矩阵乘法中的不同
array()的乘法是矩阵中对应位置的两个数相乘。
mat()的乘法是矩阵乘法。
import numpy as np a1 = np.array([[1, 2], [3, 4]])
c1 = np.array([[5,6],[7,8]]) b1 = np.mat([[1, 2], [3, 4]])
d1 = np.mat([[5,6],[7,8]]) print("a1乘c1的结果:",a1*c1)
print("b1乘d1的结果:",b1*d1)
a1乘c1的结果: [[ 5 12]
[21 32]]
b1乘d1的结果: [[19 22]
[43 50]]
array()和mat(),若让他们都遵循矩阵乘法,可以用dot()函数。
print(np.dot(a1,c1))
print(np.dot(b1,d1))
[[19 22]
[43 50]]
[[19 22]
[43 50]]
矩阵平方:array()的平方是矩阵对应位置数的平方。mat()的平方是矩阵乘积。
print("a1的平方",a1**2)
print("b1的平方",b1**2)
a1的平方 [[ 1 4]
[ 9 16]]
b1的平方 [[ 7 10]
[15 22]]
总结:
array()乘法:*代表点乘(对应元素相乘),dot()代表矩阵乘。
mat()乘法:*代表矩阵乘,multiply()代表点乘。
4. matrix()和array()关于秩的区别
5. array()和mat()之间的转换
array()——>mat():np.asmatrix()
a1 = np.array([[1,2], [3,4]])
a1
array([[1, 2],
[3, 4]])
a2 = np.asmatrix(a1)
a2
matrix([[1, 2],
[3, 4]])
mat()——>array():np.asarray()
b1 = np.mat([[1,2], [3,4]])
b1
matrix([[1, 2],
[3, 4]])
b2 = np.asarray(b1)
b2
array([[1, 2],
[3, 4]])
来自:jeexi
Numpy中matrix()和array()的区别的更多相关文章
- Python与线性代数——Numpy中的matrix()和array()的区别
Numpy中matrix必须是2维的,但是 numpy中array可以是多维的(1D,2D,3D····ND).matrix是array的一个小的分支,包含于array.所以matrix 拥有arra ...
- numpy中的matrix与array的区别
Numpy matrices必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array ...
- numpy中matrix的特殊属性
一.matrix特殊属性解释 numpy中matrix有下列的特殊属性,使得矩阵计算更加容易 摘自 NumPy Reference Release 1.8.1 1.1 The N-dimensiona ...
- 探求C#.Net中ArrayList与Array的区别 【转】
ArrayList与Array的区别概述 ArrayList 是数组的复杂版本.ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能.例如 ...
- 探求C#.Net中ArrayList与Array的区别
ArrayList与Array的区别概述 ArrayList 是数组的复杂版本.ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能.例 ...
- 在javascript中NodeList和Array的区别及转换方法
随着深入理解javascript 后对于一些小知识的了解慢慢加深,这里说的是关于nodelist和array的区别,相信你一定用过toarray()方法,但是这里通过js 的方法讲解nodelist ...
- Numpy中矩阵和数组的区别
矩阵(Matrix)和数组(Array)的区别主要有以下两点: 矩阵只能为2维的,而数组可以是任意维度的. 矩阵和数组在数学运算上会有不同的结构. 代码展示 1.矩阵的创建 采用mat函数创建矩阵 c ...
- 【转】numpy中 meshgrid 和 mgrid 的区别和使用
转自:https://www.cnblogs.com/shenxiaolin/p/8854197.html 一.meshgrid函数 meshgrid函数通常使用在数据的矢量化上. 它适用于生成网格型 ...
- Python的 numpy中 meshgrid 和 mgrid 的区别和使用
一.meshgrid函数 meshgrid函数通常使用在数据的矢量化上. 它适用于生成网格型数据,可以接受两个一维数组生成两个二维矩阵,对应两个数组中所有的(x,y)对. 示例展示: 由上面的示例展示 ...
随机推荐
- 逆向破解 H.Koenig 遥控器 Part 1
逆向破解 H.Koenig 遥控器(Part 1) 最近我正在尝试一研究些自动吸尘器机器人.iRobot公司的Roomba貌似是该领域的领导者,但是作为实验来讲的话这些东西真是太昂贵了,我也找不到 ...
- 【原创】马哥 文本三剑客之awk
命令 awk 全称: man搜索: 简述 基本用法 选项 用法与实验 print 打印 (1)(2)(3) 变量 1.内建变量 FS与OFS RS与ORS NR与FNR NF ARGC与ARGC 2. ...
- 给移动硬盘装win10,知道这些就足够了
随着制造工业的不断发展,储存介质逐渐廉价化,以某猫和某狗为代表的电商平台上都能轻松买到大容量的原装移动硬盘.如果工厂的产品还不能满足你的要求,那么DIY是一个不错的选择,可以选择购买移动硬盘盒(2.5 ...
- Linux ping route nslookup ifconfig arp traceroute
route -n 查看默认网关 ping -c 包个数 ping -s 包大小 host 目标主机 主机解析 nslookup 目标主机 arp -an 查看arp arp -s IP地 MA ...
- nagios-调用脚本
在自已编写监控插件之前我们首先需要对nagios监控原理有一定的了解 Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控.检测功能都是通过各种插件来完成的. 启动Nagios ...
- linux 远程配置docker加速器
https://www.jianshu.com/p/dca49964af04 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh ...
- pytorch 图片处理.md
本篇所有代码位置链接
- [Docker]Harbor部署私有镜像仓库
Harbor部署私有镜像仓库 认识: Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器. 部署环境: CentOS7 Python2.7.5 Docker CE ...
- 在Ubuntu 18.04系统中蓝牙鼠标连接失败问题的解决
2018-08-22 16:00:35作者:谖瓞稿源:linux站 如果你在Ubuntu 18.04操作系统中有蓝牙鼠标连接失败问题,那就参考下面的解决方法处理. 解决方法 首先在系统终端下输入: b ...
- Word:表格无法分页显示
造冰箱的大熊猫@cnblogs 2019/1/30 今天遇到一个Word中表格无法分页显示的问题,特记录下来以备后查 我们知道,在Word中将表格不设置为“允许跨页断行”,假设表格中第二行某个单元格的 ...