numpy矩阵严格是二维的,而numpy数组(ndarrays)是N维的。矩阵对象是ndarray的子​​类,因此它们继承了ndarray的所有属性和方法。

numpy矩阵的主要优点是它们为矩阵乘法提供了一种方便的表示法:如果a和b是矩阵,则a * b是它们的矩阵乘积。

import numpy as np

a=np.mat('4 3; 2 1') b=np.mat('1 2; 3 4') print(a)

[[4 3]

[2 1]]

print(b)

[[1 2]

[3 4]]

print(a*b)

[[13 20]

[ 5 8]]

另一方面,从Python 3.5开始,NumPy使用@运算符支持中缀矩阵乘法,因此您可以在Python> = 3.5中使用ndarrays实现相同的矩阵乘法便利。

import numpy as np

a=np.array([[4, 3], [2, 1]]) b=np.array([[1, 2], [3, 4]]) print(a@b)

[[13 20]

[ 5 8]]

矩阵对象和ndarray都.T必须返回转置,但是矩阵对象也必须具有.H共轭转置和.I逆。

相反,numpy数组始终遵守以元素为单位应用操作的规则(除了new @运算符)。因此,如果a和b是numpy数组,则a*b该数组是通过按元素逐个乘以组成的:

c=np.array([[4, 3], [2, 1]]) d=np.array([[1, 2], [3, 4]]) print(c*d)

[[4 6]

[6 4]]

要获得矩阵乘法的结果,请使用np.dot(或@在Python> = 3.5中,如上所示):

print(np.dot(c,d))

[[13 20]

[ 5 8]]

该**运营商还表现不同:

print(a**2)

[[22 15]

[10 7]]

print(c**2)

[[16 9]

[ 4 1]]

由于a是矩阵,所以a2返回矩阵乘积a*a。由于c是ndarray,因此c2返回一个ndarray,每个组件的元素均平方。

矩阵对象和ndarray之间还有其他技术区别(与np.ravel,项目选择和序列行为有关)。

numpy数组的主要优点是它们比二维矩阵更通用。当您需要3维数组时会发生什么?然后,您必须使用ndarray,而不是矩阵对象。因此,学习使用矩阵对象的工作量更大-您必须学习矩阵对象操作和ndarray操作。

编写同时使用矩阵和数组的程序会使您的生活变得困难,因为您必须跟踪变量是什么类型的对象,以免乘法返回意外的结果。

相反,如果仅使用ndarray,则可以执行矩阵对象可以执行的所有操作,以及更多操作,但功能/符号略有不同。

如果您愿意放弃NumPy矩阵产品表示法的视觉吸引力(使用python> = 3.5的ndarrays几乎可以优雅地实现),那么我认为NumPy数组绝对是可行的方法。

PS。当然,您真的不必以牺牲另一个为代价来选择一个,因为np.asmatrix并np.asarray允许您将一个转换为另一个(只要数组是二维的)。

问题来源于stack overflow

python中a的平方怎么表示_python平方符号相关推荐

  1. 在python中是否可以使用if作为变量名_在Python中可以使用if 作为变量名_python使用符号 标示注释...

    在Python中可以使用if 作为变量名 答:× " src=" " style="max-width: 100%; display: inline;" ...

  2. python中使用什么划分语句块_Python 使用符号() 标示注释,以() 划分语句块。_学小易找答案...

    [填空题]import numpy as np arr=np.array([[1,2,3],[4,5,6],[7,8,9]]) 则arr[0]为 ,arr[1][1]为 . [填空题]4 . 幂 级数 ...

  3. python中的取余运算符是_python取余运算

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python中对负数求余的计算方法和求幂运算注意点python中对负数求余的计算 ...

  4. python中map函数是什么意思_python中map什么意思

    python中map什么意思? python中map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 func ...

  5. python中str的index什么意思_python中index的用法是什么

    index() 一般用处是在序列中检索参数并返回第一次出现的索引,没找到就会报错,比如:>>> t=tuple('Allen') >>> t ('A', 'l', ...

  6. python中gil锁和线程锁_Python线程——GIL锁、线程锁(互斥锁)、递归锁(RLock)...

    GIL锁 ​ 计算机有4核,代表着同一时间,可以干4个任务.如果单核cpu的话,我启动10个线程,我看上去也是并发的,因为是执行了上下文的切换,让看上去是并发的.但是单核永远肯定时串行的,它肯定是串行 ...

  7. python中函数包括标准库函数吗_Python语言和标准库(第二章:函数)

    a-如何创建函数. b-给出一些指导原则,帮助思考如何创建和组织程序以使用函数. c-如何编写函数,使随后可以询问它们的工作方式和实现的功能. 2.1将程序放在单独的文件里 为了更加方便,从现在开始, ...

  8. python中int表示的数据类型是_python中的基本数据类型之 int bool str

    一.基本数据类型 1. int  ==>  整数.主要用来进行数学运算. 2.str  ==>  字符串.可以保存少量的数据,并进行相应的操作. 3.bool  =>  布尔值.判断 ...

  9. python中导入模块用什么命令_Python导入模块的技巧

    作为使用Python的开发者,我们一开始学习的内容之一就是如何导入Python的各种模块或库.但是我们注意到,那些经常使用Python的用户并不一定都知道Python的导入机制其实非常灵活.在本文中, ...

  10. python中math.ceil是什么意思_python中的数字取整(ceil,floor,round)概念和用法

    python中的数学运算函数(ceil,floor,round)的主要任务是截掉小数以后的位数.总体来说 就是取整用的.只是三者之间有微妙的区别: floor() :把数字变小 ceil() : 把数 ...

最新文章

  1. PowerShell 2.0 实践(十二)管理 SQL Server 2008 R2(1)
  2. 无刷新读取数据库 (ajax)
  3. php封装pdo实例以及pdo长连接的优缺点
  4. Android自定义控件属性的使用
  5. qt mysql 系统时间_使用QT和参数在SQLite数据库中插入日期时间
  6. mongodb 添加用户及权限设置详解
  7. BZOJ2563: 阿狸和桃子的游戏 贪心
  8. 快到而立之年了,可是能撑得起而立吗?
  9. Netty中的Channel之数据冲刷与线程安全(writeAndFlush)
  10. 验证服务器的通用性,通用VNFM部署的可行性分析与验证
  11. SpringBoot整合RabbitMQ之Topic Exchange通配符交换机(学习总结)
  12. php合成flv,用php将任何格式视频转为flv
  13. redis连接与关闭
  14. 两台无线路由桥接教程
  15. word报错“您的组织策略阻止我们为您完成此操作”的解决方法
  16. Python编写无界面版打字练习程序
  17. 评估行人行动预测的基准——Benchmark for Evaluating Pedestrian Action Prediction
  18. apiserver报错:OpenAPI spec does not exists
  19. Windows 10 21H1 更新的3种方式
  20. Apache Traffic Server 简介

热门文章

  1. 物联网LoRa系列-1:物联网系统分层架构
  2. LAPACK(1)——安装与测试
  3. Python每日一练:小艺的口红(暴力、二分、图论三种方法)代写匿名信
  4. 压电陶瓷薄膜材料介电性能检测
  5. C语言之EOF、feof函数、ferror函数
  6. 文件的结束判定与feof函数
  7. 使用Coded UI进行UI的自动化测试
  8. Linux系统版本查询命令
  9. Go语言-并发控制和锁
  10. java aes cfb 256_aes加密解密源码,包括aes128、aes192、aes256位,以及cbc、cfb、ecb、ofb、pcbc模式...