MATLAB vs Python: for Scientific Computing – A Beginners Guide

Faisal Riyad
Faisal Riyad

Follow

Apr 20, 2018 · 6 min read

Now a days « the ability to write codes » has become an essential skill for the students from the technical discipline. Que cela vous plaise ou non, pendant vos études de premier cycle, vous ferez des devoirs, résoudrez des équations ou une partie des problèmes de votre projet avec une sorte de codage. Et, si vous envisagez de faire des études supérieures et de faire des recherches approfondies, alors « écrire des codes » est une compétence incontournable pour vous.

Lequel devriez—vous apprendre – MATLAB ou Python? Il n’y a pas de réponses définitives. MATLAB est là pour le calcul scientifique depuis longtemps, où le développement de progiciels de calcul scientifique pour python, par exemple SciPy, NumPy n’est pas obsolète. MATLAB est donc devenu un langage ou un outil hérité de la communauté scientifique.
Il est devenu un langage hérité pour un certain nombre de raisons. Les ingénieurs et les scientifiques avaient toujours besoin d’un langage de programmation qui exprime directement les mathématiques matricielles et matricielles, puis MATLAB (matrix laboratory) a vu le jour. MATLAB est un langage orienté mathématiques et matriciel livré avec différents types de boîtes à outils spécialisées (vous devez payer pour la boîte à outils) à plusieurs fins, par exemple la modélisation de données économiques, l’analyse d’images ou la conduite d’un robot. Ces boîtes à outils sont développées par des professionnels, rigoureusement testées et bien documentées pour des applications scientifiques et d’ingénierie. Et c’est pourquoi vous en payez le prix. D’un autre côté, en Python, vous devez souvent compter sur des packages créés par la communauté pour des utilisations scientifiques et d’ingénierie.

Manipulation de matrice en Python vs MATLAB

MATLAB a une quantité solide de fonctions. L’un de ses meilleurs produits est ‘SimuLink’, qui n’a pas encore d’alternative. Vous pourriez penser à un autre langage de programmation graphique nommé « LabVIEW » comme alternative à celui-ci, mais vous devez alors en payer le prix fort. Et, en Python pour obtenir cela en tant que package développé par la communauté, nous devrons peut-être attendre au moins une demi-décennie.

Il a une documentation extraordinairement bonne pour commencer à apprendre, et une grande communauté scientifique qui a répondu aux questions qui vont être posées ou qui recevront une réponse de quelqu’un lorsque vous les publierez dans le MATLAB Central. Il y a 365 000 contributeurs, 120 questions sont répondues et 25 000 exemples de scripts ou de codes sont téléchargés par jour.

La meilleure chose de MATLAB est la disponibilité d’applications basées sur l’interface graphique pour effectuer des tâches courantes, ce qui facilite la vie des débutants. Vous ne savez pas comment ajuster une courbe à l’aide de la commande ‘fminsearch’, il vous suffit d’ouvrir la boîte à outils d’ajustement des données, et en quelques clics de souris, cela sera fait. Le traitement parallèle est beaucoup plus facile dans MATLAB, si quelqu’un a accès à la boîte à outils de calcul parallèle. Il dispose de boîtes à outils pour la biologie computationnelle, les finances computationnelles, les systèmes de contrôle, la science des données, le traitement d’images et la vision par ordinateur, l’apprentissage automatique, la modélisation et la simulation physiques, la robotique, le traitement du signal et les communications et l’IOT. Seuls inconvénients que j’ai trouvés, vous devez payer pour cela et, dans une certaine mesure, cela nécessite un peu de RAM supplémentaire dans votre appareil informatique.

D’un autre côté, appeler Python comme alternative à MATLAB est techniquement incorrect, il s’agit plutôt d’un langage de programmation à usage général, ce qui signifie que vous pouvez développer des applications à part entière ou d’autres outils logiciels en python. Il est possible de créer des applications en utilisant l’une des principales bibliothèques GUI (par exemple Qt), d’utiliser OpenGL, de piloter votre port USB, etc.

Python et ses bibliothèques compagnons deviennent de plus en plus sophistiquées de jour en jour. Pour les problèmes à grande échelle, Python est beaucoup plus expressif et lisible que les scripts MATLAB. Les programmes Python sont structurés par indentation, c’est-à-dire que les blocs de code sont définis par leur indentation, ce qui rend le programme plus facile à suivre.

Indentation en Python

Étant un langage de programmation gratuit, multiplateforme, polyvalent et de haut niveau, beaucoup de gens adoptent maintenant Python. DesES comme pycharm, ipython notebook, jupyter notebook et des distributions comme anaconda ont rendu python beaucoup plus utilisable pour les chercheurs. En raison de cette popularité, de nombreux packages scientifiques Python sont devenus disponibles avec une documentation complète pour la visualisation de données, l’apprentissage automatique, le traitement du langage naturel, l’analyse de données complexes et plus encore. Par exemple, scikit-learn inclut des approches de « Machine Learning » de pointe avec une très bonne documentation et des tutoriels.

Ici, j’ai rassemblé la liste de quelques bibliothèques et outils scientifiques Python populaires:

SciPy:Cette bibliothèque est utilisée par des scientifiques, des analystes et des ingénieurs faisant du calcul scientifique et du calcul technique. Il contient des modules d’optimisation, d’algèbre linéaire, d’intégration, d’interpolation, de fonctions spéciales, de FFT, de traitement du signal et de l’image, de solveurs ODE et d’autres tâches courantes en science et en ingénierie.

NumPy: C’est le package fondamental pour le calcul scientifique avec Python, ajoutant la prise en charge de grands tableaux et matrices multidimensionnels, ainsi qu’une grande bibliothèque de fonctions mathématiques de haut niveau pour fonctionner sur ces tableaux.

Pandas:Pandas est une bibliothèque de manipulation et d’analyse de données. La bibliothèque fournit des structures de données et des opérations pour manipuler des tableaux numériques et des séries chronologiques.

SymPy: SymPy est une bibliothèque pour le calcul symbolique et comprend des fonctionnalités allant de l’arithmétique symbolique de base au calcul, en passant par l’algèbre, les mathématiques discrètes et la physique quantique. Il fournit des capacités d’algèbre informatique soit en tant qu’application autonome, soit en tant que bibliothèque pour d’autres applications, soit en direct sur le Web.

Matplotlib: Matplotlib est une bibliothèque de traçage 2D python qui produit des figures de qualité de publication dans une variété de formats papier et d’environnements interactifs sur toutes les plates-formes. Matplotlib vous permet de générer des tracés, des histogrammes, des spectres de puissance, des graphiques à barres, des graphiques d’erreur, des nuages de points, etc.

scikit-learn: scikit-learn est une bibliothèque d’apprentissage automatique. Il dispose de divers algorithmes de classification, de régression et de clustering, y compris des machines vectorielles de support, des forêts aléatoires, un gradient boosting, des k-means et DBSCAN, et est conçu pour interagir avec les bibliothèques numériques et scientifiques Python NumPy et SciPy.

scikit-image: scikit-image est une bibliothèque de traitement d’images. Il comprend des algorithmes de segmentation, de transformations géométriques, de manipulation d’espace colorimétrique, d’analyse, de filtrage, de morphologie, de détection de caractéristiques, etc.

Veusz: Veusz est un package de traçage et de graphique scientifique conçu pour produire des tracés de qualité de publication dans des formats vectoriels populaires, y compris PDF, PostScript et SVG.

Astropie: Le projet Astropy est une collection de paquets conçus pour être utilisés en astronomie. Le package core astropy contient des fonctionnalités destinées aux astronomes professionnels et aux astrophysiciens, mais peut être utile à toute personne développant un logiciel d’astronomie.

PsychoPy: PsychoPy est un package pour la génération d’expériences pour les neurosciences et la psychologie expérimentale. La psychopie est conçue pour permettre la présentation de stimuli et la collecte de données pour un large éventail d’expériences en neurosciences, en psychologie et en psychophysique.

Biopython: Biopython est une collection d’outils Python non commerciaux pour la biologie computationnelle et la bioinformatique. Il contient des classes pour représenter des séquences biologiques et des annotations de séquences, et il est capable de lire et d’écrire dans une variété de formats de fichiers.

Il y a tellement de paquets là-bas, et la meilleure chose est qu’ils sont gratuits, c’est-à-dire que le coût de calcul scientifique et numérique avec Python est nul.

Donc, du point de vue du débutant, il n’y a pas de réponse définitive à la question: « Laquelle devrais-je utiliser pour le calcul scientifique? »Je voudrais répondre à cette question d’une manière différente. L’utilisation de Python signifie que vous pouvez collaborer plus facilement avec des personnes qui n’ont pas accès à MATLAB. Ou, peut-être, vous utiliserez MATLAB, car il n’y a pas de paquets alternatifs en Python qui servent aussi bien que dans MATLAB.

Merci de nous aimer et de nous suivre sur Facebook: https://www.facebook.com/gradbunker

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.