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()的区别的更多相关文章

  1. Python与线性代数——Numpy中的matrix()和array()的区别

    Numpy中matrix必须是2维的,但是 numpy中array可以是多维的(1D,2D,3D····ND).matrix是array的一个小的分支,包含于array.所以matrix 拥有arra ...

  2. numpy中的matrix与array的区别

    Numpy matrices必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array ...

  3. numpy中matrix的特殊属性

    一.matrix特殊属性解释 numpy中matrix有下列的特殊属性,使得矩阵计算更加容易 摘自 NumPy Reference Release 1.8.1 1.1 The N-dimensiona ...

  4. 探求C#.Net中ArrayList与Array的区别 【转】

    ArrayList与Array的区别概述     ArrayList 是数组的复杂版本.ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能.例如 ...

  5. 探求C#.Net中ArrayList与Array的区别

     ArrayList与Array的区别概述     ArrayList 是数组的复杂版本.ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能.例 ...

  6. 在javascript中NodeList和Array的区别及转换方法

    随着深入理解javascript 后对于一些小知识的了解慢慢加深,这里说的是关于nodelist和array的区别,相信你一定用过toarray()方法,但是这里通过js 的方法讲解nodelist ...

  7. Numpy中矩阵和数组的区别

    矩阵(Matrix)和数组(Array)的区别主要有以下两点: 矩阵只能为2维的,而数组可以是任意维度的. 矩阵和数组在数学运算上会有不同的结构. 代码展示 1.矩阵的创建 采用mat函数创建矩阵 c ...

  8. 【转】numpy中 meshgrid 和 mgrid 的区别和使用

    转自:https://www.cnblogs.com/shenxiaolin/p/8854197.html 一.meshgrid函数 meshgrid函数通常使用在数据的矢量化上. 它适用于生成网格型 ...

  9. Python的 numpy中 meshgrid 和 mgrid 的区别和使用

    一.meshgrid函数 meshgrid函数通常使用在数据的矢量化上. 它适用于生成网格型数据,可以接受两个一维数组生成两个二维矩阵,对应两个数组中所有的(x,y)对. 示例展示: 由上面的示例展示 ...

随机推荐

  1. Makefile 编译静态库文件及链接静态库

    本文为原创文章,转载需指明该文链接 1.代码目录结构如下: comm/ comm/inc/apue.h  3 atexit.c Makefile  5 staticlib/lib/ staticlib ...

  2. jsp页面获取浏览器中的请求 或者 转发过来的请求值

    jsp页面中的$(param.xxx)   $(param.user)相当于<%=request.getParameter("user")%>

  3. 7.Nginx_Keepalived高可用配置

    2. 利用keepalived实现高可靠配置(HA) 2.1. 高可靠概念 HA(High Available):高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节 ...

  4. kubernetes管理机密信息

    一.启动应用安全信息的保护: Secret介绍: 应用启动过程中可能需要一些敏感信息,比如访问数据库的用户名密码或者秘钥.将这些信息直接保存在容器镜像中显然不妥,Kubernetes 提供的解决方案是 ...

  5. NOIP2017 Day1 T3 逛公园

    NOIP2017 Day1 T3 更好的阅读体验 题目描述 策策同学特别喜欢逛公园.公园可以看成一张\(N\)个点\(M\)条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,\(N\)号点 ...

  6. 题解 [CQOI2015]任务查询系统

    题面 解析 首先,我们考虑下暴力的做法: 每次将一个任务的重要度加入到它的区间中, 询问的时候就直接加前\(k\)大. 然而,这样肯会炸的(都说了是暴力了). 其实,我们可以转化一下区间修改(因为区间 ...

  7. [学习笔记] 平衡树——Treap

    前置技能:平衡树前传:BST 终于学到我们喜闻乐见的平衡树啦! 所以我们这次讲的是平衡树中比较好写的\(Treap\). (以后会写splay的先埋个坑在这) 好了,进入正题. step 1 我们知道 ...

  8. PIC - For Resources [ background ]

  9. Remote API(RAPI)之 文件管理

    RAPI库由一组函数组成,这些函数可用于通过桌面应用程序管理设备,包括设备的目录文件.设备的注册表和系统信息. RAPI提供了一组文件管理方法 CeCopyFile:复制文件 CeCreateDire ...

  10. kubernetes1.17集群部署

    学习自:https://www.jianshu.com/p/789bc867feaa ###批量配置免秘钥 密码可自行修改 这里的密码是123456 yum  install -y expect ss ...