¿Cómo podría aprender Python a beneficiarme como epidemiólogo?

Además de los beneficios generales de poder programar, Python, en particular, tiene un amplio conjunto de bibliotecas científicas disponibles (¡gratis!) Que pueden ayudarlo a manipular y visualizar datos con mucha rapidez utilizando sofisticadas herramientas matemáticas y estadísticas.
p.ej,
SciPy, muchas herramientas matemáticas y estadísticas: http://www.scipy.org/
Matplotlib, graficando usando la sintaxis de Matlab: http://matplotlib.sourceforge.net/

Una cosa en la que Python es muy fuerte es analizar texto y otros datos, por lo que preparar tus conjuntos de datos es (relativamente) sencillo. Puedo decirles que después de descubrir estas herramientas me encuentro pinchando y hurgando datos de una manera que nunca hubiera considerado antes por temor a que el análisis simplemente requiriera demasiado esfuerzo.

Aprender Python, o cualquier otro lenguaje de programación de alto nivel para propósitos generales, le daría herramientas para resolver rápidamente problemas que pueden verse difíciles o imposibles de resolver en este momento. Por lo tanto, puede hacerlo más productivo en lo que hace, posiblemente sea mucho más productivo.

Inventemos un ejemplo: podrá descargar, limpiar y transformar un conjunto de datos de la web (por ejemplo, enfermedades y estadísticas de una página web de CDC que no proporciona una fuente de datos estructurados); obtener una lista de todos los tweets que mencionan estas enfermedades en el último día; realizar algún tipo de análisis en el conjunto de datos resultante (por ejemplo, obtener la distribución geográfica); y luego visualizar o graficar los resultados. Todo esto como una cuestión de días, posiblemente horas. Suena muy bien, ¿verdad?

También tiene la capacidad de modificar su código fácilmente para modificar cualquiera de los parámetros o algoritmos, volver a ejecutarlo a voluntad, guardar resultados intermedios para análisis futuros, compartir fácilmente sus herramientas con otros, etc. Python tiene excelentes instalaciones para cualquier tipo de la manipulación de datos genéricos, una amplia gama de bibliotecas de terceros para tareas especiales y una próspera comunidad de desarrolladores.

El mismo razonamiento se aplica a muchas disciplinas científicas diferentes, no solo a la epidemiología. Un genetista de poblaciones que recogió Python en 23andMe y luego pasó a hacer su doctorado en la UCSF me dijo una vez que saber cómo codificarlo lo hacía sentir como si tuviera superpoderes. Sus compañeros estudiantes que no sabían cómo programar estaban maravillados de lo que podía lograr con solo un poco de codificación. Creo que pasó a tratar de hacer de la introducción a la programación un curso obligatorio para los estudiantes de doctorado entrantes. Espero que haya tenido éxito.

Como epidemiólogo académico que usa Python regularmente, debo decir que es una parte esencial de mi conjunto de herramientas:

  • Gestión y limpieza de datos. La biblioteca estándar viene con todas las herramientas necesarias. También uso bibliotecas como pandas y scikits.
  • Estadísticas: uso scipy y scikits. R y SAS aún son necesarios para algunos análisis, pero la biblioteca Rpy proporciona una interfaz útil.
  • Simulaciones: simPy y networkX.