¿Vale la pena cambiar de R a Python? [cerrado]


31

Acabo de terminar un programa de maestría de Data Science de 1 año donde nos enseñaron R. Descubrí que Python es más popular y tiene una comunidad más grande en IA.

¿Vale la pena que alguien en mi posición cambie a Python y, en caso afirmativo, por qué? ¿Python tiene características que cambien el juego que no están disponibles en R o es solo una cuestión de comunidad?


2
¿Fue un curso en una universidad pública, una universidad privada o en el sistema educativo corporativo?
Manuel Rodríguez

12
No puedes cambiarte a Python. No estás hablando de un proyecto que ya escribiste en R y quieres portarlo a Python, simplemente estás preguntando sobre aprender Python (sin olvidar a R). ¿Vale la pena aprender Python? Hoy en día es casi imposible no aprender Python si trabajas con algo relacionado con el manejo de datos con una computadora ...
lvella

1
No estoy seguro de por qué esto no se cerró según la opinión, pero me alegro.
Evorlor

1
@Evorlor Vea mi respuesta, que de hecho establece que esta pregunta también conducirá principalmente a respuestas basadas en opiniones. Además, voté para cerrar esta pregunta como principalmente basada en la opinión, a pesar de que también di una respuesta. En este sitio web, hay muchas preguntas de este tipo. Ya no estoy seguro de si esto es bueno o no, pero las respuestas actuales a esta pregunta han sido útiles para mucha gente.
nbro

2
¿Cómo es que esto no está cerrado? Esta es una pregunta canónica basada en la opinión.
spacetyper

Respuestas:


60

Quiero replantear tu pregunta.

No pienses en cambiar, piensa en agregar.

En ciencia de datos, podrás llegar muy lejos con python o r, pero llegarás más lejos con ambos.

Python y r se integran muy bien, gracias al reticulatepaquete. A menudo ordeno los datos en r porque es más fácil para mí, ¡entrenar a un modelo en python para que se beneficie de una velocidad superior y visualizar los resultados en r en un hermoso ggplotcuaderno todo en uno!

Si ya sabe que no tiene sentido abandonarlo, úselo donde sea sensato y fácil para usted. Pero es 100% una buena idea agregar Python para muchos usos.

Una vez que se sienta cómodo en ambos, tendrá un flujo de trabajo que se adapte mejor a su idioma favorito.


Estoy totalmente de acuerdo con tu punto de vista. Solo agrégalo e intenta no abandonar tu conjunto de habilidades R.
Jens Kohl

3
voto a favor para reticulate. rstudio incluso tiene algún soporte para inspeccionar Python y está en proceso de agregar más
blues

El único problema con el uso de ambos es que haces que todos los demás dependan de tener R y Python también. Si bien estoy de acuerdo en "agregar" a su conjunto de habilidades, ¡aún mantendría las cosas puras al escribir guiones!
PascalVKooten

reticulatepermite que R use Python; de manera similar, rpy2permite que Python use R. Es común que los lenguajes de programación con propósitos similares tengan alguna forma de comunicarse entre ellos.
JG

Exactamente. No intercambie su herramienta, pero agregue una a su cinturón. Ahora tiene más herramientas, lo que le permite resolver más problemas de una mejor manera.
Mástil

28

Por supuesto, este tipo de preguntas también conducirán principalmente a respuestas basadas en opiniones. Sin embargo, es posible enumerar las fortalezas y debilidades de cada idioma, con respecto a las tareas de aprendizaje automático, estadísticas y análisis de datos, que trataré de enumerar a continuación.

R

Fortalezas

  • R fue diseñado y desarrollado para los estadísticos y los analistas de datos, por lo que proporciona, fuera de la caja (es decir, que son parte de la propia lengua), características y facilidades para los estadísticos, los cuales no están disponibles en Python, a menos que Instalar un paquete relacionado. Por ejemplo, el marco de datos, que Python no proporciona, a menos que instale el famoso pandaspaquete de Python . Hay otros ejemplos como matrices, vectores, etc. En Python, también hay estructuras de datos similares, pero son más generales, por lo que no están específicamente dirigidas a los estadísticos.

  • Hay muchas bibliotecas estadísticas.

Debilidad

Pitón

Fortalezas

  • Muchas personas y empresas, incluidas Google y Facebook, invierten mucho en Python. Por ejemplo, el lenguaje de programación principal de TensorFlow y PyTorch (dos marcos de aprendizaje automático ampliamente utilizados) es Python. Por lo tanto, es muy poco probable que Python no continúe siendo ampliamente utilizado en el aprendizaje automático durante al menos 5-10 años más.

  • La comunidad Python es probablemente mucho más grande que la comunidad R. De hecho, por ejemplo, si nos fijamos en el índice de Tiobe , Python se coloca en tercer lugar, mientras que R se coloca en 20 °.

  • Python también se usa ampliamente fuera de las comunidades de estadísticas o aprendizaje automático. Por ejemplo, se utiliza para el desarrollo web (consulte, por ejemplo, los marcos de Python Django o Flask).

  • Hay muchas bibliotecas de aprendizaje automático (por ejemplo, TensorFlow y PyTorch).

Debilidad

  • No proporciona, de forma inmediata, las funcionalidades estadísticas y de análisis de datos que R proporciona, a menos que instale un paquete apropiado. Esto podría ser una debilidad o una fortaleza, dependiendo de su punto de vista filosófico.

Hay otras posibles ventajas y desventajas de estos idiomas. Por ejemplo, ambos idiomas son dinámicos. Sin embargo, esta característica puede ser una ventaja y una desventaja (y no está estrictamente relacionada con el aprendizaje automático o las estadísticas), por lo que no la mencioné anteriormente. Evité mencionar características de lenguaje obstinadas, como la legibilidad del código y la curva de aprendizaje, por razones obvias (por ejemplo, no todas las personas tienen la misma experiencia de programación).

Conclusión

Definitivamente vale la pena aprender Python si estás estudiando aprendizaje automático o estadísticas. Sin embargo, esto no significa que ya no usarás R. R aún podría ser más útil para ciertas tareas.


3
Parece que el conjunto de características "listo para usar" es irrelevante. Lo relevante es la disponibilidad de paquetes que hacen lo que quieres, ¿no?
Dean MacGregor

1
@DeanMacGregor Si no tiene acceso a Internet, ¡esta función es relevante! Además, si un lenguaje de programación ya proporciona una característica lista para usar, no tiene que perder tiempo buscándola.
nbro

Teniendo en cuenta que Python está muy infestado de ser 'baterías incluidas', su debilidad no es una que se encuentre con frecuencia. Sobre todo porque hay instalaciones de Python en el uso de lo que lo hacen han incluido paquetes estadísticos. Para la ciencia de datos en particular, Anaconda es bastante popular y resuelve su preocupación inmediata.
Mástil

6

No tenía esta opción porque me vi obligado a pasar de R a Python:

Depende de su entorno : cuando está integrado en un departamento de ingenieros , es más factible un grupo técnico de trabajo o algo similar a Python.

Cuando esté rodeado de científicos y especialmente estadísticos , quédese con R.

PS: R ofrece keras y tensorflow, aunque se implementa bajo el capó de Python. Solo cosas muy avanzadas harán que necesites Python. Aunque me estoy acostumbrando cada vez más a Python, el Synthax en R es más fácil . Y aunque cada paquete tiene el suyo, de alguna manera es consistente, mientras que Python no lo es. Y ggplot es muy fuerte. Python tiene un clon (plotnine) pero carece de varias características (importantes). En principio, puede hacer casi tanto como en R, pero especialmente la visualización y la discusión de datos es mucho más fácil en R. Por lo tanto, la biblioteca de Python más famosa, pandas, es un clon de R.

PSS: Las estadísticas avanzadas apuntan definitivamente a R. Python ofrece muchas herramientas y métodos cotidianos para un científico de datos, pero nunca alcanzará esos> 13,000 paquetes que R proporciona. Por ejemplo, tuve que hacer una regresión inversa y Python no ofrece esto. En R puede elegir entre varias pruebas de confianza y si es lineal o no lineal. Lo mismo ocurre con los modelos mixtos: se implementa en Python, pero es tan básico que no puedo darme cuenta de cómo esto puede ser suficiente para alguien.


4

Yo diría que sí. Python es mejor que R para la mayoría de las tareas, pero R tiene su nicho y aún querría usarlo en muchas circunstancias.

Además, aprender un segundo idioma mejorará tus habilidades de programación.

Mi propia perspectiva sobre las fortalezas de R vs Python es que preferiría R para un pequeño programa de un solo propósito que involucra tablas o gráficos, o trabajo exploratorio en la misma línea. Preferiría Python para todo lo demás.

  • R es realmente bueno para el macerado de la mesa. Si la mayor parte de lo que un programa en particular va a hacer es suavizar algunas tablas en diferentes formas, entonces R es lo que debe elegir. Python tiene herramientas para esto, pero R está diseñado para eso y lo hace mejor.
  • Vale la pena cambiar a R siempre que necesite hacer un gráfico, porque ggplot2 es una obra maestra de usabilidad API y matplotlib es un horror de rastreo.
  • Python está bien diseñado para programación de propósito general. Tiene un conjunto muy bien diseñado de estructuras de datos estándar, bibliotecas estándar y declaraciones de flujo de control.
  • R es poco adecuado para la programación de uso general. No maneja bien los datos estructurados en árbol o en estructura gráfica. Tiene algunas reglas (como poder examinar y modificar su alcance principal) que son convenientes de inmediato, pero cuando se usan conducen a programas que son difíciles de cultivar, modificar o componer.
  • R también tiene algunas cosas directamente malas. Estos son en su mayoría solo restos históricos como los tres sistemas de objetos diferentes.

Para elaborar más sobre el último punto: la programación de computadoras bien hecha es lego donde haces tus propios ladrillos (funciones y módulos).

Los programas generalmente se modifican y reutilizan más allá de su diseño original. A medida que los construye, es útil pensar qué partes podrían reutilizarse, y construir esas partes de una manera general que les permita conectarse a los otros ladrillos.

R te anima a derretir todos los ladrillos juntos.


1

Como otros han dicho, no es un "cambio". ¿Pero vale la pena agregar Python a tu arsenal? Yo diría sin duda. En ciencia de datos, Python es popular y se está volviendo cada vez más popular, mientras que R retrocede un poco. Y en los campos de aprendizaje automático y redes neuronales, diría que Python es el lenguaje principal ahora; no creo que R realmente se acerque aquí en términos de uso. La razón de todo esto es la generalidad. Python está pensado como un lenguaje de programación general y le permite realizar fácilmente secuencias de comandos de todo tipo de tareas. Si te estás quedando estrictamente dentro de un mundo estadístico perfectamente estructurado, R es genial, pero con la IA a menudo terminas haciendo cosas nuevas y misceláneas, y no creo que R pueda vencer a Python en eso. Y a causa de esto,


0

Esta es totalmente mi opinión personal.

Leí en mi oficina (en un sitio de construcción) que "Hay una herramienta adecuada para cada tarea".

Espero que me enfrente a una variedad de tareas, como programador. Quiero tantas herramientas como pueda "comprar o invertir", como sea posible. Un día, una herramienta me ayudará a resolverlo, otro día, otra herramienta. R (para estadísticas) y Python (para en general) son dos herramientas que definitivamente quiero conmigo y creo que vale la pena invertir para mí.

En lo que respecta al cambio, utilizaré la herramienta más eficiente que conozco (donde la eficiencia se mide según los requisitos del cliente, la inversión de tiempo y costo y la facilidad de codificación). ¡Cuantas más herramientas conozca, mejor! Por supuesto, hay un límite práctico para ello.

Todo esto es mi opinión personal y no necesariamente correcta.


0

Parece que ha invertido 1 año para la ciencia de datos con R, e integrado en el entorno R, pero desea explorar Python para la ciencia de datos.

Primero aprenda los conceptos básicos de Python, como cómo funcionan las listas y las tuplas y cómo funcionan las clases y los objetos.

Luego ensuciarse las manos con algunas bibliotecas como pandas matplotlib numpy. Aprenda el tensorflow o keras y luego vaya por la ciencia de datos.


-1

La persona que persigue a dos conejos no atrapa a ninguno

Y sí, Python es más popular. Trabajo en ambos pero, hablando de negocios, es fácil encontrar trabajo en Python que en R.

Entonces, podrías:

  • Elija Python porque es más popular. Sin embargo, debe comenzar desde cero.

O

  • Quédese con R, después de todo, tiene un año de entrenamiento con R. Pero no es popular.

La sugerencia aquí de que aprender un lenguaje de programación adicional de alguna manera te dejará peor no tiene sentido. Aprender lenguajes de programación adicionales, especialmente aquellos que no le son familiares, siempre mejorará sus habilidades como programador en cualquier idioma.
Will Da Silva
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.