Entre Matlab y Python, ¿qué lenguaje es bueno para el análisis de datos estadísticos generales? ¿Cuáles son los pros y los contras, aparte de la accesibilidad, para cada uno?
Entre Matlab y Python, ¿qué lenguaje es bueno para el análisis de datos estadísticos generales? ¿Cuáles son los pros y los contras, aparte de la accesibilidad, para cada uno?
Respuestas:
Como usuario incondicional de Matlab durante los últimos 10 años, le recomiendo que aprenda Python. Una vez que esté suficientemente capacitado en un idioma, cuando trabaje en un idioma que esté aprendiendo, parecerá que no está siendo lo suficientemente productivo y volverá a utilizar su mejor idioma predeterminado. Como mínimo, sugeriría que intentes ser igualmente competente en varios idiomas (también sugeriría R).
Lo que me gusta de Matlab:
Lo que no me gusta de Matlab:
median
función de Matlab , que realiza una especie de datos y luego toma el valor medio . Este ha sido el algoritmo incorrecto desde los años 70.-nojvm
parece ayudar ...
shuffle
puede estar en una caja de herramientas, no es stock matlab. difícilmente podría ser peor que el incorporado, randperm
que devuelve el índice de clasificación de un vector aleatorio. Una vez más, este es probablemente el algoritmo mal (que acabo de aprender acerca de la Knuth-Fisher-Yates barajo aquí en stats.SE) ..
randperm
es que se ve afectada por la siembra de randn
, mientras que una versión mezclada de Knuth-Fisher-Yates quizás no pueda acceder a la semilla de randn 'internamente', y una versión pura .m de shuffle probablemente Se muy lento.
Vamos a dividirlo en tres áreas (fuera de mi cabeza) donde la programación cumple con las estadísticas: procesamiento de datos, rutinas numéricas (optimización y tal) y bibliotecas estadísticas (modelado, etc.).
En el primero, la mayor diferencia es que Python es un lenguaje de programación de propósito general. Matlab es genial siempre que su mundo sea aproximadamente isomorfo a una matriz numérica fortran. Una vez que comience a lidiar con la mezcla de datos y problemas relacionados, Python eclipsa a Matlab. Por ejemplo, vea el libro de Greg Wilson: Crujido de datos: resuelva problemas cotidianos usando Java, Python y más .
En el segundo, Matlab realmente brilla con el trabajo numérico. Gran parte de la comunidad de investigación lo usa y, si está buscando, por ejemplo, algún algoritmo relacionado con un documento sobre detección comprimida, es mucho más probable que encuentre una implementación en Matlab. Por otro lado, Matlab es una especie de PHP de la informática científica: se esfuerza por tener una función para todo bajo el sol. La estética y la arquitectura resultantes son enloquecedoras si eres un geek del lenguaje de programación, pero en términos utilitarios, hace el trabajo. Mucho de esto se ha vuelto menos relevante con el auge de Numpy / Scipy, es muy probable que encuentre bibliotecas de optimización y aprendizaje automático disponibles para Python. La interfaz con C es casi tan fácil en cualquier lenguaje.
Sobre la disponibilidad de bibliotecas estadísticas para el modelado y demás, ambas carecen de algo en comparación con algo como R. (Aunque sospecho que ambas satisfarán las necesidades del 80% de las personas que realizan trabajo estadístico). Para el lado de Python, vea esta pregunta : Python como banco de trabajo de estadísticas . Por el lado de Matlab, sé que hay una caja de herramientas de estadísticas, pero dejaré que alguien más conocedor complete los espacios en blanco (mi experiencia con Matlab se limita al trabajo numérico no relacionado con las estadísticas).
También he sido un ávido usuario de Matlab por más de 10 años. Durante muchos de esos años no tuve ninguna razón para trabajar más allá de la caja de herramientas que había creado para mi trabajo. Aunque se crearon muchas funciones para una caja de herramientas, a menudo necesitaba crear algoritmos para un análisis de respuesta rápido. Dado que estos algoritmos a menudo utilizan matemática matricial, Matlab fue un candidato ideal para mi trabajo. Además de mi caja de herramientas de código de Matlab, otros en mi grupo trabajaron extensamente en Java ya que había una clara interoperabilidad entre los idiomas. Durante años estuve completamente feliz con Matlab, pero hace unos 3 años decidí comenzar la transición lenta lejos de Matlab y feliz de decir que no la he abierto en aproximadamente un año. Aquí están los motivos de mi mudanza:
-nodesktop
opción es buena la mayor parte del tiempo, pero tiene sus problemas.Estas son solo algunas de mis muchas quejas con Matlab. Es un atributo brillante: es fácil, realmente fácil escribir código rápidamente (si no es feo). Sin embargo, lo dejé, y mi búsqueda me llevó a través de Clojure-> JavaScript-> Python <-> Julia; Sí, he estado por todos lados.