资讯专栏INFORMATION COLUMN

Python numpy和matlab有什么区别?下文给大家解答

89542767 / 401人阅读


  小编写这篇文章的主要目的,主要是给大家介绍关于Python numpy和matlab区别的介绍,具体区别,下文给大家详细的解答。


  numpy和matlab的几点差异


  Python numpy和matlab都是便捷灵活的科学计算语言,两者具有很多相似之处,但也有一些混淆的地方,这里假定你熟悉matlab,但不了解numpy,记录几个numpy实例:


  1、Numpy数组索引指定开始和结束时


  不包括结束,也即下面的b和c是一样的。


 a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
  b=a[:2,1:2]
  c=a[:2,1]


  2、Numpy.ndarray切片的修改会引起原矩阵的修改


  这与matlab不同。


  a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
  b=a[:2,1:3]
  #[[2 3]
  #[6 7]]
  print(a[0,1])#Prints"2"
  b[0,0]=77#b[0,0]is the same piece of data as a[0,1]
  print(a[0,1])#Prints"77"


  这与matlab不同。


 a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
  b=a[:2,1:3]
  #[[2 3]
  #[6 7]]
  print(a[0,1])#Prints"2"
  b[0,0]=77#b[0,0]is the same piece of data as a[0,1]
  print(a[0,1])#Prints"77"


  3、numpy使用切片索引(例如1:2)不会产生降维


  而使用整数索引(例如1)会产生降维。


  import numpy as np
  a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
  row_r1=a[1,:]#Rank 1 view of the second row of a
  row_r2=a[1:2,:]#Rank 2 view of the second row of a
  print(row_r1,row_r1.shape)#Prints"[5 6 7 8](4,)"
  print(row_r2,row_r2.shape)#Prints"[[5 6 7 8]](1,4)"
  col_r1=a[:,1]
  col_r2=a[:,1:2]
  print(col_r1,col_r1.shape)#Prints"[2 6 10](3,)"
  print(col_r2,col_r2.shape)#Prints"[[2]
  #[6]
  #[10]](3,1)"


  4、不同于matlab


  numpy的转置对于1维数组的操作不发生变化。


  v=np.array([1,2,3])
  print(v)#Prints"[1 2 3]"
  print(v.T)#Prints"[1 2 3]"


  5、不同matlab对于矩阵预算要求大小一致


  Numpy broadcasting直接支持操作(加减乘除等),要求前一个矩阵的最后一维度大小和待操作矩阵的大小相同。


  x=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
  v=np.array([1,0,1])
  y=x+v#Add v to each row of x using broadcasting
  print(y)#Prints"[[2 2 4]
  #[5 5 7]
  #[8 8 10]


  python与matlab的优点和缺点


  如果想咨询我怎么选,我可以提议俩个都是选择。很多人都喜欢拿python和matlab对比分析,随后得到哪个比较好的观点。其实吧,能用就可以了。


  假如是学生们,或者是科研人员,例如探讨信号分析,那么用matlab比较好,有较多现有辅助工具和之前的人的成效可以参考。假如是产品化项目,那么python比较好,可以做web后台,可以打包成应用程序,效率相对matlab也要高那么一点点。假如是信号、数据方面的工程人员,建议还是两个都掌握吧,也不复杂,都是脚本式的语言,比C++什么的易学多了。


  下面从两者各自的应用做个对比分析。


  1、python的竞争优势


  Python相较于Matlab最大的优点:完全免费。我国或许不是很在意这些,不过在海外是一个很重要问题。


  Python次大的优势:开源。你可以大量更改科学计算的算法细节。


  可移植性,Matlab必然不如Python。但你主要做Research,这方面需求应当不高。


  第三方生态,Matlab不如Python。例如3D的绘图工具包,例如GUI,例如更方便的并行,使用GPU,Functional等等。长期来看,Python的科学计算生态会比Matlab好。


  语言更加优美。另外如果有一定的OOP需求,构建较大一点的科学计算系统,直接用Python比用Matlab混合的方案肯定要简洁不少。


  python作为一种通用编程语言,可以做做Web,搞个爬虫,编个脚本,写个小工具用途很广泛。


  2、matlab的竞争优势


  学术界大量使用matlab做仿真,做研究的话容易找到代码参考;


  语法相对python更灵活一些,matlab写程序基本不用套路,所谓老夫撸matlab就一个字,干;


  有simulink。有人说simulink没什么用,其实还是挺有用的,例如通信建模,另外simulink可以生产DSP或者是FPGA代码,有的时候很有用。


  3、两者的区别


  python是一种通用语言,而matlab更像是一个平台。


  4、怎样选择


  如果做探讨,可以matlab为主;如果做产品,可以python为主。当然也有matlab做成产品的,打包成exe什么的都不是事。


  以上为个人经验,希望可以给各位读者带来帮助


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/127789.html

相关文章

  • Python numpy线性代数与随机漫步知识详解

      小编写这篇文章的主要目的,主要是给大家做出来一个解答,解答Python numpy中,线性代数知识以及随机漫步知识,就这些知识下面给大家做出一个详细解答。  线性代数  线性代数,矩形计算公式,优化与内存;比如矩阵乘法,分解,行列式等数学知识,是所有数组类库的重要组成部分。和MATLAB等其他语言相比,numpy的线性代数中有所不同的是矩阵相乘不是点积运算而是逐个元素计算,因此在numpy里面...

    89542767 评论0 收藏0
  • Python Matplotlib marker详细解答

      Python Matplotlib marker作为一种可视化的拓展库,里面的内容还是比较的丰富的,那么,就一些具体详细的内容,下面就给大家去做一个详细的解答,请仔细阅读下文。  前言  Matplotlib,风格类似Matlab的基于Python的图表绘图系统。Matplotlib是Python最著名的绘图库,它提供了一整套和Matlab相似的命令API,十分适合交互式地进行制图。而且也可以...

    89542767 评论0 收藏0
  • pythonmat矩阵matlabnpy矩阵实现互相转换

      小编写这篇文章的目的,主要是给大家介绍关于python和npy矩阵的相关介绍,下面会给大家做出一个详细的解答,希望可以给各位读者带来帮助。  mat矩阵和npy矩阵互相转换  numpy.narray矩阵保存为mat文件  importnumpyasnp   importscipy.ioasio   mat_path='your_mat_save_path'   mat=np....

    89542767 评论0 收藏0
  • 真假美猴王-Numpy数据与Python数组的区别与联系

    摘要:下文统一称为数组是存储单一数据类型的多维数组同语言数组直接保存数值而则是能够对数组进行处理的函数。动态数据类型与的数组和的这些不可变数据类型的适用场景等可变数据类型适用于需要不断对原始数据进行修改的场景。 showImg(https://segmentfault.com/img/remote/1460000018925396);Numpy,是python中的一个矩阵计算包,功能类似ma...

    邹强 评论0 收藏0
  • Python下的Numpy函数对应关系

      小编写这篇文章的主要目的,是为了帮助在Python中学习的人们,帮助他们能够更好更快速的进行学习。今天,我就给大家介绍一下,关于Python下Numpy函数对应关系的实例,大家要仔细阅读哦。  Matlab函数对应关系(Numpy)  首先给出官网链接,其中详细说明了在Python下如何用Numpy实现Matlab下相同的函数功能。  博主在用Python撰写代码的时候,想用Python实现在...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<