iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Pythonnumpy和matlab的几点差异介绍
  • 882
分享到

Pythonnumpy和matlab的几点差异介绍

2024-04-02 19:04:59 882人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录numpy和matlab的几点差异1、Numpy数组索引指定开始和结束时2、Numpy.ndarray切片的修改会引起原矩阵的修改3、numpy使用切片索引(例如1:2)不会产生

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"

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什么的都不是事。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Pythonnumpy和matlab的几点差异介绍

本文链接: https://www.lsjlt.com/news/119278.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Pythonnumpy和matlab的几点差异介绍
    目录numpy和matlab的几点差异1、Numpy数组索引指定开始和结束时2、Numpy.ndarray切片的修改会引起原矩阵的修改3、numpy使用切片索引(例如1:2)不会产生...
    99+
    2024-04-02
  • .NET中堆栈和堆的特点与差异介绍
    一、前言 .NET提供了垃圾回收机制,使程序员从内存管理中被解放出来。但这并不代表程序员就无须了解分配的对象是如何被回收的。更重要的是,一些非托管的资源仍然需要程序员小心地分配与回收...
    99+
    2024-04-02
  • Python3.10和Python3.9版本之间的差异介绍
    目录介绍:了解 Python 及其用例:分析 Python 3.9 V/s Python 3.10 的差异Python 3.9:IANA 时区数据库合并和更新字典的函数删除前缀和后缀...
    99+
    2024-04-02
  • Python numpy和matlab的差异是什么
    本篇内容介绍了“Python numpy和matlab的差异是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!numpy和mat...
    99+
    2023-07-02
  • Oracle存储过程和函数的功能差异及使用技巧介绍
    Oracle存储过程和函数的功能差异及使用技巧 在Oracle数据库中,存储过程和函数是两种重要的数据库对象,它们都可以用来封装SQL语句和业务逻辑,提高数据库操作的效率和安全性。然而...
    99+
    2024-03-03
    函数 oracle 存储过程 sql语句
  • 关于"引用"的几点说明介绍
    一、引用的基本知识 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名; 说明: (1)&在此...
    99+
    2022-11-15
    引用
  • Python语言的优点和缺点介绍
    这篇文章主要介绍“Python语言的优点和缺点介绍”,在日常操作中,相信很多人在Python语言的优点和缺点介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python语言的优点和缺点介绍”的疑惑有所帮助!...
    99+
    2023-06-01
  • Win 10和Win 8 用户使用起来感受最大的几个差异点
    10月1日,微软正式开放 Windows 10 技术预览版下载服务,尽管微软表示该版本主要针对经验丰富的开发者,但此后还是有数以百万计的用户下载并安装了该全新的操作系统。上个月,微软透露称,...
    99+
    2023-06-09
    Win10 Win8 Win 10 8 用户 差异点
  • 云服务器的介绍和特点
    云服务器(Cloud Storage)是一种用于在云端托管应用程序和数据的服务器。它是将数据存储在服务器上,用户可以在云端托管这些应用程序。云服务器通常通过公有云、私有云、或混合云来实现。 云服务器的特点是其高可靠性、安全性和可扩展性。它...
    99+
    2023-10-26
    服务器
  • C#中异步和多线程的区别介绍
    一、区别和联系 异步和多线程有什么区别?其实,异步是目的,而多线程是实现这个目的的方法。异步是说,A发起一个操作后(一般都是比较耗时的操作,如果不耗时的操作就没有必要异步了),可以继...
    99+
    2024-04-02
  • jquery中的ajax同步和异步的详细介绍
    本篇内容主要讲解“jquery中的ajax同步和异步的详细介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery中的ajax同步和异步的详细介绍”吧!之...
    99+
    2024-04-02
  • 阿里云服务器的介绍和特点
    阿里云服务器是阿里云的一个服务,用于提供高性能、高可靠性的云服务器服务。 该服务提供了许多不同的功能和特性,包括以下几个主要特点: 高性能:阿里云服务器提供强大的计算能力,可以满足大量用户的计算需求。通过多核CPU、内存、存储等多种技术...
    99+
    2023-10-26
    阿里 服务器
  • Linux Shell中几种括号和引号的用法介绍
    本篇内容介绍了“Linux Shell中几种括号和引号的用法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Shell 脚本中经常需要用到...
    99+
    2023-06-16
  • Java非阻塞IO和异步IO的详细介绍
    这篇文章主要讲解了“Java非阻塞IO和异步IO的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java非阻塞IO和异步IO的详细介绍”吧!阻塞模式 IO我们已经介绍过使用 Java...
    99+
    2023-06-02
  • 重点介绍Golang方法的语法和使用
    Golang作为一门比较年轻的语言,在方法中也有自己独特的实现方式。本文将重点介绍Golang方法的语法和使用。一、方法定义Golang中可以为任何类型定义方法,包括引用类型和非引用类型。方法定义格式如下:func (t Type) met...
    99+
    2023-05-14
  • 云服务器的介绍和特点有哪些
    云服务器(Cloud Storage)是一种用于在云端托管应用程序和数据的服务器。它通常是由大型互联网企业或云计算服务提供商所提供的私有云或公有云,这些企业或服务提供商会为其用户提供虚拟私有云、托管在云端的本地部署应用程序或数据中心等服务。...
    99+
    2023-10-26
    服务器 有哪些
  • 云服务器的介绍和特点是什么
    云服务器(Cloud Server)是一种通过互联网提供云服务的服务器,它通常由多个服务器组成,每个服务器运行一个虚拟计算机集群,提供计算、存储、网络和其他服务,用户通过浏览器访问这些服务,并可以与其他用户共享这些资源。 云服务器的特点是...
    99+
    2023-10-26
    服务器
  • C++链表节点的添加和删除介绍
    目录前言1. 节点的创建 2. 链表的定义3. 创建节点4. 节点的插入 4.1 头插法 4.2 尾插法 4.3 插入中间节点 总结前言 链表...
    99+
    2024-04-02
  • 异步编程:Python、Unix、JavaScript之间的差异和共同点是什么?
    异步编程是一种编程模型,它可以在程序执行其他任务的同时,处理多个并发的异步操作。Python、Unix和JavaScript都支持异步编程,但它们之间存在着差异和共同点。本文将探讨Python、Unix和JavaScript之间异步编程的差...
    99+
    2023-06-18
    unix javascript 异步编程
  • MySQL触发器的使用和优缺点介绍
    目录前言1. 触发器概述2. 触发器的创建2.1 创建触发器语法2.2 代码举例3. 查看、删除触发器3.1 查看触发器3.2 删除触发器4. 触发器的优缺点4.1 优点4.2 缺点...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作