Tutorial de bucle For de Python sobre análisis de big data
Python de análisis de big data Además de recorrer listas, los bucles for tienen muchas otras funciones en el trabajo de ciencia de datos del mundo real, es posible que necesites usar matrices numpy y pandasDataFrames para bucles en otras estructuras de datos.
El tutorial Python For Loop de Big Data Analysis comienza con cómo utilizar un bucle for para iterar sobre estructuras de datos comunes de Big Data Analysis Python distintas de las listas, como tuplas y diccionarios. Luego, nos sumergiremos en el uso de bucles for junto con las bibliotecas comunes de ciencia de datos de Python para análisis de big data, como numpy, pandas y matplotlib. También veremos más de cerca la función range() y su papel en la escritura de bucles.
Revisión rápida: bucle PythonFor para análisis de big data.
Un bucle for es una declaración de programación que le dice a Python que itere a través de una colección de objetos y realice la misma operación en cada objeto por turno.
Cada vez que Big Data Analysis Python recorre el bucle, el objeto variable tomará el valor del siguiente objeto en la secuencia collection_of_objects, y Big Data Analysis Python ejecutará el código que escribimos en cada objeto collection_of_objects en secuencia.
Ahora, profundicemos en cómo utilizar bucles con diferentes tipos de estructuras de datos. Nos saltaremos las listas porque ya las cubrimos en el tutorial anterior. Si necesita un examen más detallado, consulte el tutorial de introducción o las tareas interactivas de Dataquest en Listas y bucles.
Estructuras de datos
Tuplas
Las tuplas son secuencias, al igual que las listas. La diferencia entre tuplas y listas es que las tuplas son inmutables. Es decir, no se pueden cambiar (Obtenga más información sobre objetos mutables e inmutables en Python). Las tuplas también utilizan paréntesis en lugar de corchetes.
Independientemente de estas diferencias, recorrer tuplas es muy similar a las listas.
Si tenemos una lista de tuplas, podemos acceder a los elementos individuales de cada tupla en la lista incluyéndolos a ambos como variables en un bucle for.
Diccionario
Además de las listas y tuplas, los diccionarios son otro tipo de datos Python de análisis de big data común que puede encontrar al procesar datos, y los bucles for también pueden atravesar el diccionario.
El diccionario Python de análisis de big data consta de pares clave-valor, por lo que en cada bucle necesitamos acceder a dos elementos (clave y valor). En lugar de usar enumerate() como una lista, en lugar de iterar sobre las dos claves y el valor correspondiente para cada par clave-valor, debemos llamar a eso. método elementos().
Por ejemplo, supongamos que tenemos un diccionario llamado acciones que contiene los tickers de acciones y los precios de las acciones correspondientes. Lo usaremos. El método items() del diccionario genera claves y valores para cada iteración.
Tenga en cuenta que las claves de nombre y los valores son completamente arbitrarios. También podemos etiquetarlos como k y v o x e y.
Cadenas
Como se mencionó en el tutorial introductorio, un bucle for también puede iterar sobre cada carácter de una cadena. Una revisión rápida de cómo funciona esto:
numpy arrays
Ahora, veamos qué tan comunes son los paquetes de ciencia de datos de Python para el análisis de big data y sus tipos de datos que utilizan los bucles for.
Comenzaremos viendo cómo recorrer matrices numpy, así que comencemos creando algunas matrices de números aleatorios.
Iterar sobre una matriz numpy unidimensional es muy similar a iterar sobre una lista.
Ahora, ¿qué pasa si queremos iterar sobre una matriz 2D? Si usamos la misma sintaxis anterior para iterar sobre una matriz 2D, cada iteración solo puede iterar sobre toda la matriz.
Una matriz bidimensional se compone de una matriz unidimensional. Para acceder a cada elemento en lugar de a cada matriz, podemos usar la función numpy nditer(), que es un objeto iterador multidimensional que toma una matriz como argumento.
En el siguiente código, escribiremos un bucle for que pase una matriz z 2D como parámetro a cada elemento nditer().
Como podemos ver, esto primero enumera todos los elementos en x y luego todos los elementos en y.
¡Recuerda! Al iterar sobre estas diferentes estructuras de datos, los diccionarios requieren un método y numerosas matrices requieren una función.
Pandas DataFrames
Cuando usamos Python de análisis de big data para procesar datos, a menudo usamos pandasDataFrames. Afortunadamente, también podemos usar un bucle for para iterar sobre esos bucles.
Practiquemos usando un pequeño archivo CSV que registra el PIB, el capital y la población de seis países diferentes. Leeremos esto en un pandasDataFrame a continuación.
Pandas funciona de manera diferente a numpy, por lo que no podremos simplemente repetir los procedimientos de numpy que ya hemos aprendido. Si intentamos iterar sobre un pandasDataFrame como una matriz numpy, solo se imprimirán los nombres de las columnas:
En su lugar, debemos mencionar explícitamente las filas del DataFrame sobre las que queremos iterar. Para hacer esto, llamamos al método iterrows() en el DataFrame e imprimimos las etiquetas de las filas y los datos de las filas, donde una fila es la serie completa de pandas.
También podemos acceder a valores específicos de la serie pandas. Digamos que solo queremos imprimir la ciudad capital de cada país. Podemos especificar que solo queremos resultados de la columna "Capital".
Para ir un paso más allá de una simple impresión, agreguemos una columna usando un bucle for. Agreguemos la columna "PIB per cápita". Por favor recuerda esto. loc[] se basa en etiquetas. En el código siguiente, agregaremos esa columna y calcularemos el contenido de cada país dividiendo su PIB total por su población y multiplicando el resultado por un billón (ya que la cifra del PIB está en billones).
Para cada fila del marco de datos, crearemos una nueva etiqueta y estableceremos los datos de la fila iguales al PIB total dividido por la población del país, multiplicado por 1 billón de dólares para obtener miles de dólares.
La función range()
Hemos visto cómo iterar sobre cualquier secuencia o estructura de datos usando un bucle for. Pero, ¿qué pasa si queremos iterar estas secuencias en un orden específico o un número específico de veces?
Esto se puede hacer a través de la función range() incorporada de Python. Dependiendo de la cantidad de argumentos pasados a la función, puede determinar dónde comenzará y terminará la serie de números y qué tan grande será la diferencia entre un número y el siguiente. Tutorial de Python For Loop de análisis de Big Data Tenga en cuenta que, al igual que las listas, la función range() cuenta desde 0 en lugar de 1.
Podemos llamar a range() de tres formas:
a. rango(parada)
b. rango(inicio,parada)
c. range(start,stop,step)
range(stop)
range(stop) tiene un parámetro que se usa cuando queremos iterar sobre un rango de números a partir de 0 y Incluye todos los números hasta el número que establecimos como parada, pero sin incluirlo.
Rango(inicio, parada)
El rango (inicio, parada) tiene dos parámetros. No solo podemos establecer el final de la secuencia, sino también el punto de inicio. Puede usar range() para generar un rango de números de A a B usando range(A,B).
rango(inicio, parada, paso)
rango(inicio, parada, paso) toma tres parámetros. Además de los valores mínimo y máximo, también podemos establecer la diferencia entre un número y el siguiente número en la secuencia. Si no se proporciona, el valor de paso predeterminado es 1.
Tenga en cuenta que esto también se aplica a secuencias no numéricas.
También podemos iterar utilizando el índice de los elementos de la secuencia. La idea clave es calcular primero la longitud de la lista y luego iterar la secuencia a lo largo de esta longitud. Veamos un ejemplo:
En el bucle for anterior, observamos el índice y el idioma de las variables, la palabra clave in y la función range() que crea una secuencia de números. Tenga en cuenta que también utilizamos la función len() en este caso, ya que las listas no son números.
Para cada iteración, estamos ejecutando nuestra declaración de impresión. Entonces, para cada índice en el rango len(idiomas) queremos imprimir un idioma. Dado que la longitud de nuestra secuencia de lenguaje es 6 (es decir, el valor calculado de len(idiomas)), podemos reescribir la declaración de la siguiente manera:
Dibujar con un bucle For
Supongamos que queremos para iterar sobre una colección y usar cada elemento para generar un subgrafo, o incluso cada rastro en un solo gráfico. Por ejemplo, tomemos el popular conjunto de datos de iris (obtenga más información sobre estos datos) y hagamos algunos dibujos usando un bucle for. Considere la imagen a continuación.
Arriba, trazamos la longitud de cada sépalo versus el ancho del sépalo, pero podríamos darle más significado al gráfico clasificando cada punto de datos por cada tipo de flor. Una forma de hacer esto es usar un bucle for para dispersar cada punto individualmente y pasar el color correspondiente.
¿Qué pasa si queremos visualizar la distribución univariada de algunas características del conjunto de datos del iris? Podemos hacer esto usando plt. subplot(), que crea una subtrama dentro de una cuadrícula, cuyo número de columnas y filas se puede establecer.
Sin entrar en la sintaxis de matplotlib por ahora, aquí hay una breve descripción de cada componente principal del gráfico:
1) plt. subplot(): se utiliza para crear nuestra cuadrícula de 2 × 2 y establecer el tamaño general.
2) zip(): esta es una función Python incorporada de análisis de big data que hace que sea muy sencillo recorrer múltiples iterables de la misma longitud al mismo tiempo.
3) ejes. flatten(), donde flatten() es un método de matriz numpy; esto devolverá una versión aplanada de nuestra matriz (columna).
4) hacha. set() – nos permite a los ejes establecer todas las propiedades de un objeto usando un método.
Operaciones adicionales
Bucles anidados
Análisis de big data Python nos permite utilizar un bucle dentro de otro bucle. Se trata de un bucle exterior que tiene un bucle interior dentro de su comando.
Considere la siguiente estructura:
Los bucles for anidados son útiles para iterar entre elementos en una lista que consta de listas. En una lista de listas, si solo usamos un bucle for, el programa generará cada lista interna como un elemento:
Para acceder a cada elemento individual de la lista interna, definimos un bucle for anidado:
Arriba, el bucle for externo itera sobre la lista principal de listas (que contiene dos listas en este ejemplo), y el bucle for interno itera sobre las listas individuales. El bucle externo realiza 2 iteraciones (para cada sublista), y en cada iteración ejecutamos el bucle interno, imprimiendo todos los elementos de la sublista correspondiente.
Esto nos dice que el control comienza en el bucle más externo, atraviesa el bucle interno y luego regresa nuevamente al bucle for externo, continuando hasta que el control cubre todo el rango, que en este caso es 2 veces. .
Continuar y romper bucles
Las declaraciones de control del bucle cambian la ejecución del bucle for de su orden normal.
¿Qué pasa si queremos filtrar un idioma específico en el bucle interno? Podemos hacer esto usando la instrucción continuar, que nos permite omitir partes específicas del ciclo cuando se activa una condición externa.
En el bucle anterior, en el bucle interno, si el idioma es igual a "alemán", simplemente omitiremos esa iteración y continuaremos con el resto del bucle. El bucle no terminará.
Veamos el siguiente ejemplo de números:
Entonces, aquí hemos definido un bucle que pasa por todos los números del 0 al 9 y eleva cada número al cuadrado. En el ciclo, en cada iteración, estamos verificando si el número es divisible por 2, momento en el cual el ciclo continúa y cuando encuentro un número par, se salta la iteración.
¿Qué pasa con una declaración de ruptura? Esto nos permite salir del bucle por completo cuando se cumple la condición externa. Usemos el mismo ejemplo anterior para demostrar simplemente cómo funciona esto:
En el ejemplo anterior, nuestra declaración if propone la siguiente condición: Si el valor de nuestra variable i es igual a 7, el bucle se romperá. , por lo que nuestro bucle iterará sobre números enteros entre 0 y 6 antes de salir del bucle por completo.
¿Buscas más? Aquí hay algunos recursos adicionales que pueden ser útiles:
1) Tutoriales de Python para análisis de big data: nuestra lista en constante expansión de tutoriales de Python para el análisis de big data para la ciencia de datos.
2) Cursos de ciencia de datos: lleve su aprendizaje al siguiente nivel con cursos de programación, ciencia de datos y estadística totalmente interactivos directamente en su navegador.
Conclusión
En este tutorial de Big Data Analysis Python For Loop, aprendimos sobre algunas aplicaciones más avanzadas de bucles for y cómo usarlas en un flujo de trabajo típico de ciencia de datos de Big Data Analysis Python. usarlos en.
Aprendimos cómo iterar sobre diferentes tipos de estructuras de datos y cómo usar bucles con pandasDataFrames y matplotlib para crear mediante programación múltiples trazas o subtramas.
Finalmente, analizamos algunas técnicas más avanzadas que nos brindan más control sobre la operación y ejecución de un bucle for.