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?
python
comparison
r
Soy yo Mario
fuente
fuente
Respuestas:
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
reticulate
paquete. 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 hermosoggplot
cuaderno 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.
fuente
reticulate
. rstudio incluso tiene algún soporte para inspeccionar Python y está en proceso de agregar másreticulate
permite que R use Python; de manera similar,rpy2
permite que Python use R. Es común que los lenguajes de programación con propósitos similares tengan alguna forma de comunicarse entre ellos.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
pandas
paquete 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
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.
fuente
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.
fuente
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.
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.
fuente
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,
fuente
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.
fuente
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.
fuente
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:
O
fuente