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. Te guste o no, durante tus estudios de grado harás tareas, resolverás ecuaciones o parte de los problemas de tu proyecto con algún tipo de codificación. Y, si piensas en ir a estudios superiores y hacer una investigación extensa, entonces «escribir códigos» es una habilidad que debes conocer para ti.

¿Cuál debería aprender-MATLAB o Python? No hay respuestas definitivas. MATLAB ha estado allí para la computación científica durante mucho tiempo, donde el desarrollo de paquetes de computación científica para python, por ejemplo, SciPy, NumPy, no ha sido anticuado. Por lo tanto, MATLAB se ha convertido en un lenguaje o una herramienta heredados para la comunidad científica. Se ha convertido en un lenguaje heredado por varias razones. Los ingenieros y científicos siempre necesitaban un lenguaje de programación que expresara las matemáticas de matrices y matrices directamente, y luego surgió MATLAB (laboratorio de matrices). MATLAB es un lenguaje orientado a matemáticas y matrices que viene con diferentes tipos de cajas de herramientas especializadas (debe pagar por la caja de herramientas) para varios fines, por ejemplo, modelado de datos económicos, análisis de imágenes o manejo de un robot. Estas cajas de herramientas están desarrolladas profesionalmente, rigurosamente probadas y bien documentadas para aplicaciones científicas y de ingeniería. Y es por eso que pagas el precio por ello. Por otro lado, en Python a menudo tiene que confiar en paquetes creados por la comunidad para usos científicos y de ingeniería.

Manipulación de matrices en Python vs MATLAB

MATLAB tiene una sólida cantidad de funciones. Uno de sus mejores productos es ‘SimuLink’, que aún no tiene alternativa. Podrías pensar en otro lenguaje de programación gráfico llamado ‘LabVIEW’ como una alternativa a él, pero luego tienes que pagar un alto precio por él. Y, en Python para obtener eso como un paquete desarrollado por la comunidad, es posible que tengamos que esperar al menos media década.

Tiene una documentación extraordinariamente buena para comenzar a aprender, y una gran comunidad científica que ha respondido a las preguntas que se van a hacer o que alguien responderá cuando las publique en MATLAB Central. Hay 365.000 colaboradores, se responden 120 preguntas y se descargan 25.000 scripts o códigos de muestra por día.

Lo mejor de MATLAB es la disponibilidad de la interfaz gráfica de usuario basada aplicaciones para la realización de tareas comunes que hace que la vida de principiante más fácil. No sabe cómo ajustar una curva con el comando ‘fminsearch’, simplemente abra la caja de herramientas de ajuste de datos y con un par de clics del ratón se hará. El procesamiento en paralelo es mucho más fácil en MATLAB, si alguien tiene acceso a parallel computing toolbox. Cuenta con cajas de herramientas para biología computacional, finanzas computacionales, sistemas de control, ciencia de datos, procesamiento de imágenes y visión por computadora, aprendizaje automático, modelado y simulación físicos, robótica, procesamiento de señales y comunicaciones e IOT. Solo las desventajas que encontré, tienes que pagar por ello y, en cierta medida, requiere un poco de RAM adicional en tu dispositivo informático.

Por otro lado, llamar a Python como alternativa a MATLAB es técnicamente incorrecto, más bien es un lenguaje de programación de propósito general, lo que significa que puede desarrollar aplicaciones completas u otras herramientas de software en python. Es posible crear aplicaciones utilizando cualquiera de las principales bibliotecas GUI (por ejemplo, Qt), usar OpenGL, manejar el puerto USB, etc.

Python y sus bibliotecas complementarias son cada vez más sofisticadas día a día. Para problemas a gran escala, Python es mucho más expresivo y legible en comparación con los scripts de MATLAB. Los programas Python se estructuran a través de sangría, es decir, los bloques de código se definen por su sangría, lo que hace que el programa sea más fácil de seguir.

Sangría en Python

Ser libre, cruz-plataforma de propósito general y de alto nivel lenguaje de programación, un montón de personas que se están adoptando en Python. IDE como pycharm, ipython notebook, jupyter notebook y distribuciones como anaconda han hecho que python sea mucho más utilizable para los investigadores. Como resultado de esta popularidad, muchos paquetes científicos de Python están disponibles con una extensa documentación para visualización de datos, aprendizaje automático, procesamiento de lenguaje natural, análisis de datos complejos y más. Por ejemplo, scikit-learn incluye enfoques de «aprendizaje automático» de vanguardia con muy buena documentación y tutoriales.

Aquí he recogido la lista de algunos de los populares Python científico de bibliotecas y herramientas:

SciPy: Esta librería es utilizada por los científicos, analistas, ingenieros y haciendo cálculos científicos y técnicos de la informática. Contiene módulos para optimización, álgebra lineal, integración, interpolación, funciones especiales, FFT, procesamiento de señales e imágenes, solucionadores de ODAS y otras tareas comunes en ciencia e ingeniería.

NumPy: Es el paquete fundamental para la computación científica con Python, agregando soporte para matrices y matrices grandes y multidimensionales, junto con una gran biblioteca de funciones matemáticas de alto nivel para operar en estas matrices.

Pandas: Pandas es una biblioteca para la manipulación y el análisis de datos. La biblioteca proporciona estructuras de datos y operaciones para manipular tablas numéricas y series temporales.

SymPy: SymPy es una biblioteca para computación simbólica e incluye características que van desde aritmética simbólica básica hasta cálculo, álgebra, matemáticas discretas y física cuántica. Proporciona capacidades de álgebra informática como una aplicación independiente, como biblioteca para otras aplicaciones o en vivo en la web.

Matplotlib: Matplotlib es una biblioteca de gráficos 2D de python que produce figuras de calidad de publicación en una variedad de formatos impresos y entornos interactivos en todas las plataformas. Matplotlib le permite generar gráficos, histogramas, espectros de potencia, gráficos de barras, gráficos de errores, gráficos de dispersión y más.

scikit-learn: scikit-learn es una máquina de aprendizaje de la biblioteca. Cuenta con varios algoritmos de clasificación, regresión y agrupación, incluyendo máquinas de vectores de soporte, bosques aleatorios, impulso de gradiente, k-means y DBSCAN, y está diseñado para interoperar con las bibliotecas numéricas y científicas de Python NumPy y SciPy.

scikit-image: scikit-image es una biblioteca de procesamiento de imágenes. Incluye algoritmos para segmentación, transformaciones geométricas, manipulación del espacio de color, análisis, filtrado, morfología, detección de entidades y más.

Veusz: Veusz es un paquete de gráficos y gráficos científicos diseñado para producir gráficos de calidad de publicación en formatos vectoriales populares, incluidos PDF, PostScript y SVG.

Astropy: El Astropy Proyecto es una colección de paquetes diseñados para su uso en la astronomía. El paquete básico de astropía contiene funcionalidad dirigida a astrónomos y astrofísicos profesionales, pero puede ser útil para cualquier persona que desarrolle software de astronomía.

PsychoPy: PsychoPy es un paquete para la generación de experimentos para neurociencia y psicología experimental. PsychoPy está diseñado para permitir la presentación de estímulos y la recopilación de datos para una amplia gama de experimentos de neurociencia, psicología y psicofísica.Biopython: Biopython es una colección de herramientas de Python no comerciales para biología computacional y bioinformática. Contiene clases para representar secuencias biológicas y anotaciones de secuencias, y es capaz de leer y escribir en una variedad de formatos de archivo.

Hay muchos paquetes por ahí, y lo mejor es que son gratuitos, es decir, el costo de computación científica y numérica con Python es cero.

Entonces, desde una perspectiva de principiante, no hay una respuesta definitiva a la pregunta: «¿Cuál debo usar para la computación científica?»Me gustaría responder a esta pregunta de una manera diferente. Usar Python significa que puede colaborar más fácilmente con personas que no tienen acceso a MATLAB. O, tal vez, usará MATLAB, porque no hay paquetes alternativos en Python que funcionen tan bien como en MATLAB.

Por favor, síguenos en Facebook: https://www.facebook.com/gradbunker

Deja una respuesta

Tu dirección de correo electrónico no será publicada.