Matlab在数据科学中的灭亡

2023-11-02

意见 (Opinion)

My personal interest in Data Science spans back to 2011. I was learning more about Economies and wanted to experiment with some of the ‘classic’ theories and whilst many of them held ground, at a micro level, many were also purely fictitious. Many of the themes that you learn: on how savings and investments are directly related, or even on how Supply and Demand are directly related to price just didn’t hold true.

我个人对数据科学的兴趣可追溯到2011年。我正在学习更多关于经济的知识,并想尝试一些“经典”理论,尽管其中许多在微观上站稳了脚步,但许多理论也完全是虚构的。 您所学习的许多主题:关于储蓄和投资如何直接相关,甚至关于供求关系与价格直接相关的主题都不成立。

To be fully conclusive on my research though, I had to be sure that any conclusion I drew was purely unadulterated and spoke from the data. It’s all good and well that some notable academic from some notable University informs us about a theory, but is it actually true? Is it true everywhere?

但是,要完全确定我的研究结论,我必须确保我得出的任何结论都是纯正的,并且是从数据中得出的结论。 某著名大学的一些著名学者向我们介绍了一种理论,这一切都很好,但实际上是真的吗? 到处都是吗?

Collecting data wasn’t too hard but from there I had to teach myself programming. Python was free, easy to use, and the ‘new thing’ that people said to learn to ‘future proof’ my knowledge. However, after learning it and persuading a company to let me join their Graduate Scheme, I began to use Matlab at work.

收集数据并不难,但是我必须从那里自学编程。 Python是免费的,易于使用的,人们说要学会“证明未来”的“新事物”是我的知识。 但是,在学习并说服一家公司让我加入他们的研究生计划后,我开始在工作中使用Matlab

From here, I’ve always had this conflict where Matlab feels like a better language to work in but Python has always been my, you could say, ‘mother tongue’.

从这里开始,我总是遇到这样的冲突, Matlab感觉像是一种更好的语言,但是Python一直是我的母语(可以说)。

The following article will highlight why after almost 10 years of experience in both languages, I feel that Python absolutely dominates Matlab in Data Science and also, why new Data Scientists should focus on solely on Python.

下一篇文章将重点说明为什么在使用这两种语言近10年的经验之后,我感到Python在数据科学领域绝对统治了Matlab ,而且,为什么新的数据科学家应该只专注于Python

Python and Matlab are similar and different at the same time. Matlab was created as a private enterprise and as a closed form platform solution with a high price tag. On the other side, Python was created with ‘openness’ in mind to be easy and simple to use for all general tasks.

PythonMatlab相似又不同。 Matlab是作为一家私营企业和具有高价的封闭式平台解决方案而创建的。 另一方面,在创建Python时考虑到了“开放性”,以使其易于使用和简单地用于所有常规任务。

Matlab got a head start in the popularity contest as it was released in 1984 and despite me not being around back then, the various permutations and iterations of the language lent themselves well to the discipline of Mathematics. This is because vectors and multi-dimensional matrices are super simple to use in Matlab — a feature which only came in later at the time of Numpy (which was still kind of annoying) but Pandas has made using Python infinitely easier. Given that change, does my thesis hold true?

Matlab在1984年发布的人气竞赛中处于领先地位,尽管那时我还不在身边,但该语言的各种排列和迭代方式非常适合数学学科。 这是因为向量和多维矩阵在Matlab使用非常简单-该功能仅在Numpy出现时才出现(这仍然很烦人),但是Pandas Numpy简化了使用Python 。 有了这种改变,我的论文是否成立?

熊猫是Python开始超越Matlab的原因吗? (Was Pandas the reason why Python began to overtake Matlab?)

So we know that Pandas was first an internal library at AQR Capital and written my Wes McKinney and looking at Trends on Stack Overflow, we can see that from 2012 onwards, the percentage of questions with a Tag of Pandas began to increase where from 2015, there was a sharpe inflection point.

因此,我们知道Pandas首先是AQR Capital的内部图书馆,并写了我的Wes McKinney并研究了Stack Overflow的趋势,我们可以看到,从2012年开始,带有Pandas标签的问题所占的百分比开始从2015年开始增加,有一个尖锐的拐点。

Now notice here that since 2013/2014, the number of questions for Python as a langauge began to increase as well. Makes sense right? Pandas is a subset of Python, so naturally, the two are related, however …

现在请注意,自2013/2014年以来,作为语言的Python的问题数量也开始增加。 有道理吧? 熊猫是Python的子集,所以自然地,两者是相关的,但是……

source] ]

…since 2015, Matlab has been on a downward spiral. The proportion of questions that have a tag of Matlab has seriously been going down and why is that?

…自2015年以来,Matlab呈螺旋式下降。 带有Matlab标签的问题所占比例一直在严重下降,这是为什么呢?

source] ]

Matlab昂贵且缺乏灵活性:学生负担不起 (Matlab is Expensive and Inflexible: students cannot afford it)

Being a closed platform where every new library requires you to pay for the inbuilt functions means that things can become very expensive very quickly.

作为一个封闭的平台,每个新库都需要您为内置功能付费,这意味着事情很快就会变得非常昂贵。

It’s pretty crazy but if you do practise Machine Learning in Matlab (as I have before) — you either have to shell out and buy a number of libraries (which have dependencies on each other), or you have to build everything for yourself from scratch.

这非常疯狂,但是如果您确实在Matlab中练习机器学习(就像我以前一样)–您要么必须掏空并购买大量的库(彼此依赖),要么必须从头开始为自己构建一切。

This isn’t a necessarily a problem for those in the industry with a big budget but if you’re playing with the latest deep neural network, or looking to create GPT-4, you’ll need to include several libraries and pay through the nose whereas in Python, you can use Tensorflow and Numpy for free.

对于预算较大的行业人士来说,这不一定是一个问题,但是如果您正在使用最新的深度神经网络,或者希望创建GPT-4,则需要包括多个库并通过鼻子,而在Python ,您可以免费使用TensorflowNumpy

Also assuming you want to put into production any code that you’ve built, be prepared to build some form of a Matlab Wrapper or be prepared to code the final version in a different language. And yes, I’ve actually had to do that.

同样,假设您想将已构建的任何代码投入生产,请准备构建某种形式的Matlab包装器,或准备使用其他语言编写最终版本。 是的,我实际上必须这样做。

Matlab and Java do work together but why bother learning two languages and building some weird symbiotic system when you can simply just learn Python and have an entire-tech stack in one language? It’s so much easier, so much more flexible and so much more cost effective.

Matlab和Java确实可以一起工作,但是当您只需要学习Python并用一种语言拥有整个技术栈时,为什么还要花时间学习两种语言并构建一些奇怪的共生系统呢? 它非常容易,灵活得多并且更具成本效益。

Photo by Tim Mossholder on Unsplash
Tim MossholderUnsplash拍摄的照片

Matlab几乎没有在线支持 (Matlab has little online support)

Also if the cost isn’t enough to deter you, the amount of Online support in Matlab land is far lower than you expect. Matlab does deserve some respect in that it’s Help functionality is better than most languages and usually solves most of the problems that you face but if you require some additional help on the internet, Python has roughly 100x more questions on Stack Overflow than Matlab does. That’s a lot fewer people to help you out, and yes, I’ve been stuck with a question that no one could solve before.

同样,如果费用不足以阻止您,则Matlab领域的在线支持量远远低于您的预期。 Matlab确实值得尊重,因为它的“ Help功能比大多数语言要好,并且通常可以解决您面临的大多数问题,但是如果您需要互联网上的一些其他帮助,Python在堆栈溢出方面的问题比Matlab大约多100倍。 帮助您的人减少了很多,是的,我一直被困在一个没人能解决的问题上。

There’s no free lunch but for all the reasons above, the use case for Matlab in Statistics and Machine Learning has been far reduced since Python got good with Pandas. I could go on all day about how much more useful Python is than Matlab but I’ll save you all the ear-ache.

没有免费的午餐,但是由于上述所有原因,自从PythonPandas相处以来,统计和机器学习中Matlab的用例已大大减少。 我可能整天都在谈论PythonMatlab有用的多,但我会省掉所有的麻烦。

But at the same time, Python is free. It’s verbose and it has succeeded in many places where Matlab fell short. I thoroughly encourage all future Data Scientists or Statisticians to please let Python be your mother tongue.

但同时,Python是免费的。 它很冗长,并且在Matlab欠缺的许多地方都取得了成功。 我完全鼓励所有未来的数据科学家或统计学家让Python成为您的母语。

It’ll be the best decision you make.

这将是您做出的最佳决定。

Thanks for reading! If you have any messages, please let me know!

谢谢阅读! 如果您有任何留言,请告诉我!

Keep up to date with my latest articles here!

在这里了解我的最新文章!

翻译自: https://levelup.gitconnected.com/the-demise-of-matlab-in-data-science-bfb74e42dc8e

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matlab在数据科学中的灭亡 的相关文章

  • 使用 Pytest 捕获 SystemExit 消息

    我正在使用 pytest 编写测试 我遇到了一些函数抛出异常的情况SystemExit如果输入错误 终端上会显示一些错误消息 我想为以下情况编写测试SystemExit抛出并验证输出错误消息中是否有特定字符串 这是代码 def test v
  • 在 Android 中使用 lambdaj

    有人尝试过在android开发中使用lambdaj库吗 当我创建一个简单的小型java应用程序时 它对我来说工作得很好 但我无法在android应用程序中使用它 UPDATE 我正在添加 lambdaj lambdaj 2 3 2 with
  • argparse add_argument 别名

    有没有办法使用 argparse 创建别名 例如 我想做这样的事情 parser add argument foo parser add argument alias bar foo 也就是说 使用 bar应该相当于使用 foo 您可以简单
  • iter(fp.readline, '') 中的行而不是 fp 中的行:

    我读了内置函数iter的例子在内置函数 Python 3 7 0 文档 https docs python org 3 library functions html iter with open mydata txt as fp for l
  • 如何提高 Guice 启动时的性能

    好吧 我知道我的计算不客观等等 但无论如何 我讨厌在执行单元测试时等待这么多时间 我的 guice swing 应用程序需要大约 7 秒来初始化 这是一个简单的 IRC 客户端 在那一刻 没有打开连接 我什至还没有调用任何 java io
  • 用java解密AES加密文件

    我有一个使用 AES 使用 java 应用程序加密的文件 我还有一个加密的密钥文件 但我不明白如何使用密钥来解密文件 大多数教程和示例都会在一个地方创建临时随机密钥 加密文件和解密 所以 问题是如何指定解密时必须使用的密钥 EDIT 我发现
  • 如何在 django 中发出 post 请求后获取表单的名称?

  • ModuleNotFoundError:没有名为“googleapiclient”的模块

    如果这是一个愚蠢的问题 我深表歉意 我在 stackoverflow 上搜索过 但没有找到解决办法 我正在致力于从 Python 2 7 迁移到 Python 3 8 我收到一个程序的以下错误 请帮我 Traceback most rece
  • java3d 中的面部着色

    使用java3d 如何不在每个顶点基础上着色 而是在每个面基础上着色 我尝试学习 java3d 但我生成的 Shape3d 看起来并不符合预期 我想用不同的颜色给不同的三角形着色 但我不知道该怎么做 纹理看起来有点大材小用 而且我根本没有掌
  • Java 中 LINQ 的等价物是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Java 中 LINQ 的等价物是什么 没有什么比 LINQ for Java 更好的了 Edit 现在
  • 深度学习——一些关于caffe的幼稚问题

    我试图了解 caffe 的基础知识 特别是与 python 一起使用 我的理解是模型定义 比如给定的神经网络架构 必须包含在 prototxt file 当您使用数据训练模型时 prototxt 您将权重 模型参数保存到 caffemode
  • 函数调用中的星号[重复]

    这个问题在这里已经有答案了 我正在使用 itertools chain 以这种方式 展平 列表列表 uniqueCrossTabs list itertools chain uniqueCrossTabs 这与说有什么不同 uniqueCr
  • 计算列表中的子列表

    L 2 4 5 6 2 1 6 6 3 2 4 5 3 4 5 我想知道任意子序列出现了多少次 s 2 4 5 例如会返回2次 I tried L count s 但它不起作用 因为我认为它期望寻找类似的东西 random numbers
  • 何时以及为何使用缓冲输入和输出流? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我读到这些是为了减少磁盘 网络调用开销而使用的 这在写操作的情况下似乎很好 但是进行缓冲读取有什么好处呢 如果您按字节读取文件 则每次都会进
  • python生成器太慢,无法使用它。我为什么要使用它?什么时候?

    最近我收到一个问题 哪一个是最快的 iterator list comprehension iter list comprehension and generator 然后编写简单的代码如下 n 1000000 iter a iter ra
  • 使用 Python PuLP 混合整数规划的时间限制

    我一直在使用PuLP http pythonhosted org PuLP 解决我感兴趣的特定混合整数线性规划 MIP 但是 随着问题规模的增长 PuLP 花费的时间太长 我希望能够运行求解器一段时间 并在需要很长时间的情况下提前终止它 并
  • 使用自定义层运行 Keras 模型时出现问题

    我目前正在攻读学士学位论文FIIT STU https www fiit stuba sk en html page id 749 其主要目标是尝试复制和验证以下结果study http arxiv org abs 2006 00885 这
  • java.lang.NoClassDefFoundError:com.google.ads.AdView

    我正在尝试将 admob 广告合并到我的应用程序中 到目前为止我已经添加了以下代码 在我的应用程序主要活动的 onCreate 方法中 adView new AdView this AdSize BANNER my code number
  • 当我必须在 Netty4 编码器中调用 ByteBuf.retain() 时?

    我正在编写一个以 NUL 终止 JSON 消息的编码器 以便在消息碎片的情况下可以对其进行解码 我找到了这个样本 gt click https github com netty netty blob master codec src mai
  • Pepper Robot:如何将 Python 地标检测移植到 Choregraphe?

    我正在尝试编写一个小程序 让 Pepper 通过 Choregraphe 检查房间内的地标 用于地标检测的常规 Python 代码工作得很好 但我无法将其移植到 Choregraphe http doc aldebaran com 2 5

随机推荐

  • 【记录】mmsegmentation 训练自己的数据集

    文章目录 数据集标注工具选择 labeme 标注 精灵标注助手 photoshop标注 标准格式转换 转化为COCO格式 转化为VOC格式 json文件 mask图像 划分训练集和测试集 修改配置文件 修改data root为自己的路径 搜
  • vue:vue的计算属性以及监听属性(三)

    1 计算属性 相较于函数而言计算属性更加智能 他是基于它们的响应式依赖进行缓存的 也就是说只要相关依赖 下述例子中的area 没有发生改变 那么这个计算属性的函数不会重新执行 而是直接返回之前的值 这个缓存功能让计算属性访问更加高效 只要修
  • 解决STM32进行IAP升级跳转至APP后无法进中断问题

    最近碰到STM32在进行IAP升级时跳转至APP后无法进入中断 导致程序无法运行 正常情况下STM32进行IAP升级时 在跳转至APP程序之前 应该关闭外设 关闭中断 BootLoader中跳转程序如下 typedef void pFunc
  • Centos7 使用nginx 和 supervisord 部署python +tornado+nodejs

    一 我用到的工具是netty winscp linux 环境下安装nginx步骤 开始前 请确认gcc g 开发类库是否装好 默认已经安装 yum y install gcc gcc c 安装gcc和c 编译器 1 centOS安装依赖 y
  • vue动态判断input readonly属性

    1 如果isReadOnly等于true时 input只读 否则可以编辑
  • chatgpt赋能python:Python怎么求平均值?全面解析平均值计算方法

    Python怎么求平均值 全面解析平均值计算方法 作为一种简洁易用的计算机编程语言 Python的应用范围已经越来越广泛 在Python中 我们可以轻松地进行各种统计和计算工作 其中求平均值是最常见的计算之一 在本文中 我们将全面解析Pyt
  • JVM——8.调优工具1(jstat)

    文章目录 1 使用背景 2 jstat 的介绍及使用 2 1 jstat gc PID 介绍 2 2 其他的 jstat命令 2 3 jstat gc PID 使用 3 关注指标及计算分析 3 1 关注指标 3 2 计算分析 1 使用背景
  • linux 下家目录,根目录区别,以及普通用户到root用户的转换

    根目录 指的是最上层的目录 根目录之下有很多目录 如 home etc lib root 家目录 一般普通用户 家目录是 home 用户名 root用户 家目录是 root 如何普通用户切换到root用户 1 su 2 su root 需要
  • MySQL常见的高可用架构

    MySQL常见的高可用架构 概述 1 基于共享存储的方案SAN 优点 限制或缺点 2 基于磁盘复制的方案 MySQL DRDB架构 优点 限制或缺点 3 MySQL MHA架构 优点 缺点 4 MySQL MMM架构 优点 缺点 服务器资源
  • get方式长度受限,如何将较长数据传递到后台

    get方式长度有限制 所以只能用post方式 ajax url baseUrl dd sendDataToServer type post 数据发送方式 data tableJson tableJson async false succes
  • STM32——SPI通信

    文章目录 一 SPI通信 二 硬件电路 三 移位示意图 四 SPI时序基本单元 交换一个字节 模式0 用的多 交换一个字节 模式1 交换一个字节 模式2 交换一个字节 模式3 五 SPI时序 发送指令 写使能 指定地址写 指定地址读 六 W
  • LeetCode14:最长公共前缀

    题目 编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 返回空字符串 示例 1 输入 flower flow flight 输出 fl 示例 2 输入 dog racecar car 输出 解释 输入不存在公共前缀 说明 所
  • 随笔记录之---maven版本管理(dependencyManagement,import)

    dependencyManagment 介绍前先说 没有这个东西的时候产生发问题 大家都知道maven 的父子工程目的是为了 像代码一样抽出公共部分的内容 放到父类里 减少重复的代码 在不同的模块下 确有多个相同的依赖依赖 例如 sprin
  • tensorrt之tensorrtx编译:遇到的错误提示

    一 tensorrtx 编译步骤 mkdir build cd build cmake make workspace tensorrt release include cp r NvInfer h usr local include ten
  • 程序卡在EXPORT HardFault_Handler [WEAK]问题

    现象 程序运行后卡在EXPORT HardFault Handler WEAK 位置 无法运行 如下图所示 原因 由于申请的堆栈过小导致 调整堆栈大小即可
  • CSS display: inline-block;

    display inline block 是一种 CSS 属性 用于设置元素的显示方式 当你将一个元素的 display 属性设置为 inline block 时 它将以内联块级元素的方式显示 这意味着元素会在一行上显示 并且可以设置宽度
  • 奇怪的SQL收集

    1 根据指定条件 删除重复记录只保留ID最小的一条记录 DELETE FROM gloria add count view WHERE id IN SELECT id FROM SELECT id FROM gloria add count
  • XSS game -xss学习

    网址 https xss game appspot com level1 Level 1 Hello world of XSS payload 漏洞产生处 message Sorry no results were found for b
  • 工作记录-远程debug调试步骤

    在工作中 使用远程 debug进行调试 进行一下全方位的记录 背景前提 项目目录下已经编写好并存在 start sh脚本 1 先通过 Xshell进入到项目 的bin 路径下 cd usr local XXXX core XXXtask b
  • Matlab在数据科学中的灭亡

    意见 Opinion My personal interest in Data Science spans back to 2011 I was learning more about Economies and wanted to exp