Explicación de la visualización de datos (Parte 4): una revisión de los conceptos básicos de Python

en mi serie de visualización de datos. Vea lo siguiente:

Hasta este punto de mi serie de visualización de datos, he cubierto los elementos fundamentales del diseño de visualización. Es esencial comprender estos principios antes de diseñar y crear visualizaciones, ya que garantizan que se haga justicia a los datos subyacentes. Si aún no lo ha hecho, le recomiendo encarecidamente que lea mis artículos anteriores (vinculados arriba).

En este punto, está listo para comenzar a crear nuestras propias visualizaciones. Cubriré varias formas de hacerlo en artículos futuros y, en el espíritu de la ciencia de datos, muchos de estos métodos requerirán programación. Para asegurarse de que está listo para el siguiente paso, este artículo consistirá en una breve revisión de los elementos esenciales de Python, seguida de una discusión sobre su relevancia para codificar visualizaciones de datos.

Conceptos básicos: expresiones, variables y funciones

Las expresiones, variables y funciones son los componentes principales de todo el código Python y, de hecho, del código en cualquier idioma. Echemos un vistazo a cómo funcionan.

Expresiones

Una expresión es una declaración que se evalúa como algún valor. La expresión más simple posible es un valor constante de cualquier tipo. Por ejemplo, a continuación se muestran tres expresiones simples: la primera es un número entero, la segunda es una cadena y la tercera es un valor de punto flotante.

7’7′ 7.0

Las expresiones más complejas suelen consistir en operaciones matemáticas. Podemos sumar, restar, multiplicar o dividir varios números:

3 + 7 820 – 300 7 * 53 121 / 11 6 + 13 – 3 * 4

Por definición, Python evalúa estas expresiones en un solo valor, siguiendo el orden matemático de operaciones descrito por el acrónimo PEMDAS (Paréntesis, Exponentes, Multiplicación, División, Suma, Resta). [1]. Por ejemplo, la expresión final anterior se evalúa como el número 7,0. (¿Ves por qué?)

variables

Las expresiones son geniales, pero no son muy útiles por sí solas. Al programar, generalmente necesita guardar el valor de ciertas expresiones para poder usarlas en partes posteriores de nuestro programa. Una variable es un contenedor que contiene el valor de una expresión y le permite acceder a ella más tarde. Aquí están exactamente las mismas expresiones que en el primer ejemplo anterior, pero esta vez con su valor guardado en varias variables:

int_seven = 7 text_seven = ‘7’ float_seven = 7.0

Las variables en Python tienen algunas propiedades importantes:

El nombre de una variable (la palabra a la izquierda del signo igual) debe ser una palabra y no puede comenzar con un número. Si necesita incluir varias palabras en los nombres de sus variables, la convención es separarlas con guiones bajos (como en los ejemplos anteriores). No es necesario especificar un tipo de datos cuando trabajamos con variables en Python, como puede estar acostumbrado a hacerlo si tiene experiencia en programación en un lenguaje diferente. Esto se debe a que Python es un lenguaje de tipado dinámico. Algún otro lenguaje de programación distingue entre la declaración y la asignación de una variable. En Python, simplemente asignamos variables en la misma línea en la que las declaramos, por lo que no hay necesidad de hacer distinción.

Cuando se declaran variables, Python siempre evaluará la expresión en el lado derecho del signo igual en un valor único antes de asignarlo a la variable. (Esto se relaciona con cómo Python evalúa expresiones complejas). Aquí hay un ejemplo:

todavía_otro_siete = (2 * 2) + (9/3)

La variable anterior se asigna al valor 7.0, no a la expresión compuesta (2 * 2) + (9/3).

Funciones

Se puede considerar una función como una especie de máquina. Toma algo (o varias cosas), ejecuta algún código que transforma los objetos que pasó y genera exactamente un valor. En Python, las funciones se utilizan por dos razones principales:

Para manipular variables de entrada de interés y generar una salida que necesitamos (muy parecida a las funciones matemáticas). Para evitar la repetición de código. Al empaquetar código dentro de una función, podemos simplemente llamar a la función cada vez que necesitemos ejecutar ese código (en lugar de escribir el mismo código una y otra vez).

La forma más sencilla de entender cómo definir funciones en Python es mirar un ejemplo. A continuación, hemos escrito una función simple que duplica el valor de un número:

def doble(núm): valor_doble = núm * 2 return valor_doble print(doble(2)) # salidas 4 print(doble(4)) # salidas 8

Hay una serie de puntos importantes sobre el ejemplo anterior que debes asegurarte de comprender:

La palabra clave def le dice a Python que desea definir una función. La palabra inmediatamente después de def es el nombre de la función, por lo que la función anterior se llama doble. Después del nombre, hay un conjunto de paréntesis, dentro de los cuales se colocan los parámetros de la función (un término elegante que solo significa las entradas de la función). Importante: si su función no necesita ningún parámetro, aún debe incluir los paréntesis, pero no coloque nada dentro de ellos. Al final de la declaración def, se deben usar dos puntos; de lo contrario, Python no estará satisfecho (es decir, arrojará un error). En conjunto, toda la línea con la declaración def se denomina firma de función. Todas las líneas después de la declaración def contienen el código que constituye la función, con sangría un nivel hacia adentro. Juntas, estas líneas forman el cuerpo funcional. La última línea de la función anterior es la declaración de retorno, que especifica la salida de una función utilizando la palabra clave return. No es necesario que una declaración de retorno sea la última línea de una función, pero una vez encontrada, Python saldrá de la función y no se ejecutarán más líneas de código. Las funciones más complejas pueden tener múltiples declaraciones de devolución. Para llamar a una función, escriba su nombre y coloque las entradas deseadas entre paréntesis. Si llama a una función sin entradas, aún debe incluir los paréntesis.

Python y visualización de datos

Ahora bien, déjame responder a la pregunta que quizás te estés haciendo: ¿Por qué, para empezar, toda esta revisión de Python? Después de todo, hay muchas formas de visualizar datos y ciertamente no todas están restringidas por el conocimiento de Python, o incluso de la programación en general.

Esto es cierto, pero como científico de datos, es probable que necesite programar en algún momento y, dentro de la programación, es muy probable que el lenguaje que utilice sea Python. Cuando los ingenieros de datos de su equipo le acaban de entregar un proceso de limpieza y análisis de datos, vale la pena saber cómo convertirlo de manera rápida y efectiva en un conjunto de conocimientos visuales presentables y procesables.

Es importante conocer Python para la visualización de datos en términos generales, por varias razones:

Es un lenguaje accesible. Si recién está haciendo la transición al trabajo de visualización y ciencia de datos, será mucho más fácil programar visualizaciones en Python que trabajar con herramientas de nivel inferior como D3 en JavaScript. Hay muchas bibliotecas diferentes y populares en Python, todas las cuales brindan la capacidad de visualizar datos con código que se basa directamente en los conceptos básicos de Python que aprendimos anteriormente. Los ejemplos incluyen Matplotlib, Seaborn, Plotly y Vega-Altair (anteriormente conocido simplemente como Altair). Exploraré algunos de ellos, especialmente Altair, en artículos futuros. Además, las bibliotecas se integran perfectamente en pandas, la biblioteca de ciencia de datos fundamental en Python. Los datos en pandas se pueden incorporar directamente a la lógica del código de estas bibliotecas para crear visualizaciones; a menudo ni siquiera necesitarás exportarlo o transformarlo antes de poder empezar a visualizarlo. Los principios básicos analizados en este artículo pueden parecer elementales, pero contribuyen en gran medida a permitir la visualización de datos: calcular expresiones correctamente y comprender las escritas por otros es esencial para garantizar que se visualice una representación precisa de los datos. A menudo necesitará almacenar valores específicos o conjuntos de valores para incorporarlos posteriormente a una visualización; necesitará variables para eso. A veces, incluso puede almacenar visualizaciones completas en una variable para su uso o visualización posteriores. Las bibliotecas más avanzadas, como Plotly y Altair, le permiten llamar a funciones integradas (y a veces incluso definidas por el usuario) para personalizar visualizaciones. El conocimiento básico de Python le permitirá integrar sus visualizaciones en aplicaciones simples que pueden compartirse con otros, utilizando herramientas como Plotly Dash y Streamlit. Estas herramientas tienen como objetivo simplificar el proceso de creación de aplicaciones para científicos de datos que son nuevos en la programación, y los conceptos fundamentales cubiertos en este artículo serán suficientes para comenzar a utilizarlas.

Si eso no es suficiente para convencerlo, le recomiendo que haga clic en uno de los enlaces anteriores y comience a explorar algunas de estas herramientas de visualización usted mismo. Una vez que empieces a ver lo que puedes hacer con ellos, no volverás atrás.

Por mi parte, volveré en el próximo artículo para presentar mi propio tutorial para crear visualizaciones. (Es posible que aparezcan una o más de estas herramientas). ¡Hasta entonces!

Referencias