¿Hay algún lugar en la ciencia donde la biblioteca estadística de Python sea pobre o inmadura en comparación con R?

TL; DR : Sí, creo que hay tales lugares en la ciencia, donde la biblioteca de Python es inmadura en comparación con R. Pero esta no suele ser la razón para preferir R. Hay otras buenas razones para preferir R. Como hay razones para preferir Pitón.

Aunque Adrian Olszewski dio algunos ejemplos, es difícil responder a esta pregunta. ¿Por qué es dificil?

Bueno, ambos idiomas son GRANDES.

La Red Integral de Archivos R contenía 10617 paquetes, a partir del 14 de mayo de 2017.

PyPI: el índice de paquetes de Python contenía 108155 paquetes, a la misma fecha.

Es una tarea desalentadora comparar estos montones de paquetes diferentes para profundizar en la implementación. Aquí hay algunas ideas sobre cómo comparar los dos idiomas.

a. Ancho vs. Profundidad

La Ley de Mermelada de Frambuesa de Gerald Weinberg establece:

Cuanto más ancho lo extiendes, más delgado se vuelve.

Ahora, considere Python vs. R. Nuestra “mermelada de frambuesa” es una funcionalidad estadística.

R se usa para estadística, ciencia de datos, aprendizaje automático y un poco de ciencia general.

Python se usa para todos los usos de R, así como para la creación de sitios web, la programación de sistemas, las GUI de escritorio, el lenguaje de secuencias de comandos para ayudar al desarrollo de software y más.

Por lo tanto, suponiendo una cantidad similar de esfuerzo de desarrollo, Python se extiende más ancho y, por lo tanto, más delgado.

R es más profundo. Entonces, supongo que la regresión lineal generalizada específica que podría estar buscando es más probable que se implemente en R.

Por otro lado, la utilidad de minería de texto que implica un preprocesamiento específico es más probable que se implemente en Python, ya que esto no es exactamente de naturaleza estadística.

si. Gestión de proyectos de código abierto

La mayoría de los proyectos de código abierto tienen una arquitectura general, pero no siempre detallada. Como la mayoría de los desarrolladores de código abierto crean paquetes para rascarse las picazón específicas, algunas funcionalidades pueden implementarse dentro de varios paquetes diferentes de Python o paquetes R o ambos. Como los paquetes también pueden dividirse a lo largo de diferentes líneas, esto hace que sea más difícil comparar los paquetes.

C. Objetivos móviles

Ambos idiomas cambian constantemente y, por lo tanto, son objetivos móviles. Por ejemplo, R solía tener gráficos superiores a través del paquete ggplot2. Al ver eso, los desarrolladores de Python crearon los paquetes inspirados en gglot2 ggplot y seaborn que en su mayoría cerraron la brecha.

re. Encontrar la funcionalidad que buscas

Como nadie puede abarcar el idioma completo, confiamos en las búsquedas de Google, las vistas de tareas CRAN (todavía no he encontrado el recurso correspondiente para Python), referencias cruzadas, publicaciones de blog y personas que conocemos en las reuniones para encontrar un paquete que contenga la funcionalidad deseada.

mi. Cómo elegir qué idioma aprender

En mi opinión, esta es principalmente una opción social: vaya con el lenguaje que se usa más en su comunidad de investigación / equipo / empresa. De esta manera, será más productivo y podrá comunicarse mejor con las personas relevantes. Podría ser una buena idea controlar R y Python, ya que de hecho las funcionalidades específicas podrían no solaparse.

En algunas áreas, definitivamente sí. Consulte los temas enumerados a continuación para obtener algunas referencias:

¿Qué capacidades estadísticas específicas de dominio existen en R pero no en Python?

La respuesta de Adrian Olszewski a ¿Cuáles son los paquetes estadísticos y de aprendizaje automático importantes que utiliza en R que no tienen un equivalente disponible en Python?

¿Por qué los trabajos de ciencia de datos no enumeran Python como una herramienta estadística requerida?

¿Cuáles son algunos paquetes R populares que aún no se han portado a Python?

“¿Alguna parte posible?”

Diablos, la mayor parte de eso aún no se ha inventado.

O, si lo ha sido, mi vida no será tan divertida como esperaba.

Actualmente, R es mucho mejor para series de tiempo, bioinformática (creo que, dado que no es realmente un campo en el que soy fuerte, y no llamo a esto ciencia sin datos, aquí es donde nacieron muchas de las ideas detrás del aprendizaje automático ), y probablemente un montón de otras cosas.

Es cierto que Python es mucho mejor para el aprendizaje profundo, y mi favorito personal, escribir algoritmos personalizados, rápidos (con Numba / Cython) (que no acaparan la memoria para arrancar).

Posdata

Estaba impaciente cuando escribí esto, y no di la respuesta que podría tener de otra manera.

La bendición y la maldición de R es que tiene tantos paquetes. Bueno, eso y la gestión de la memoria, aunque eso está mejorando.

El problema con tantos paquetes es que hay una superposición considerable. Muchos de ellos están escritos por investigadores, originalmente para ellos. No existe una aplicación de principios de diseño subyacente: ahora ni siquiera es posible.

Hadley Wickham ha hecho cosas increíbles en esta dirección, y el equipo de RStudio en general. Pero hay tantas inconsistencias en la forma en que se escriben los paquetes, tantas interdependencias, puede ser un poco complicado. Todavía es sorprendente, pero también puede ser difícil personalizar las cosas debido a todo esto.

Cuando trabajo en Python, espero consistencia, y la mayoría de las veces, lo consigo. Hay una filosofía subyacente de limpieza, el Zen de Python. Por lo tanto, si tengo que escribir algo desde cero, por ejemplo, siempre lo escribiré en Python como prueba de concepto. Si me gustaría usarlo en R, eso casi nunca sucede, pero a veces tengo un cliente que lo prefiere así, puede ser difícil de hacer. Casi siempre recurro a C o C ++ en el raro caso de que tenga que hacer esto, debido a los problemas de eficiencia mencionados anteriormente y todo el asunto “personalizado”.

R es básicamente una gran colección de bibliotecas estadísticas. La mayoría de los 10,000 paquetes en el ecosistema CRAN están relacionados con la computación estadística de una forma u otra.

Aunque Python tiene más bibliotecas que R en general, solo una pequeña parte de ellas está dedicada a las estadísticas.

Entonces, la respuesta es que las bibliotecas de Python son inmaduras en comparación con las R en casi todas las áreas de estadísticas. La única área donde Python puede igualar e incluso superar R es el aprendizaje automático.

Para el análisis de datos interactivos y el modelado estadístico, R es mucho mejor, dada su gran colección de bibliotecas estadísticas fáciles de usar. Además, R también es mucho mejor en visualización de datos con bibliotecas como ggplot2.

Python es un lenguaje de programación de propósito general, que es bueno para construir sistemas / tuberías a mayor escala.

Hola,

Las 3 mejores bibliotecas de aprendizaje automático para Python

Aquí hay una lista de libros sobre aprendizaje automático / ciencia de datos en R y Python que he encontrado en el último año. Dado que leer es un buen hábito, con esta publicación, quiero pasarle este hábito. Para cada libro, he escrito un resumen para ayudarlo a juzgar su relevancia. ¡Feliz lectura! Las 15 mejores bibliotecas de Python para ciencia de datos en 2017

Casi todas ellas. Jajaja La mayoría de los documentos estadísticos que salen hoy ofrecen paquetes R, no paquetes Python. Python tiene algunas bibliotecas de aprendizaje automático y paquetes básicos de álgebra lineal, pero en general no puede hacer mucho con las estadísticas.

Cualquier lugar en la ciencia “, “… cualquier parte posible de la ciencia de datos “, ” cualquier industria y aplicación “, ” biblioteca pobre o inmadura “: presupuestos que tomarían meses verificar y probar si valía la pena. Pero creo que no lo es.

Dudo sinceramente que alguien haga declaraciones vagas como estas o que incluso las consideraría, y mucho menos las cuestionará.

Eche un vistazo a la diversidad de paquetes que usa cada uno de los dos sistemas y decida usted mismo.

O, para variar, lea este interesante artículo: Falacia de preguntas complejas

Puedes buscar en Google Zhe Photo.

La gran mayoría de los documentos de vanguardia en mi antiguo campo (transcriptómica de celda única) publicaron su código en R. Eso hizo que elegir entre R y Python fuera relativamente fácil.

Si, en varios lugares. La serie temporal es una. La mayoría de los métodos de vanguardia están disponibles solo en R.