Este post fue difundido como parte del Blogatón de ciencia de datos.
Introducción
Una iteración es un objeto que repite tareas idénticas o similares sin cometer errores. En cierto modo, podemos decir que la ejecución repetida de un conjunto de declaraciones es de lo que se trata la iteración. Pitón tiene varias características de lenguaje para ayudar la realización de la tarea de iteración.
Como objeto, el iterador cuenta una serie de valores sobre los que se puede iterar. Las listas, tuplas, diccionarios, cadenas y conjuntos son todos objetos iterables. Son iterables contenedores del cual puede obtener un iterador.
En el siguiente tema, veremos un resumen de los diferentes procesos de iteración.
Bucle usando enumerate ()
El uso de un bucle for para iterar sobre una lista solo nos da acceso a todos los ítems de la lista en cada ejecución, uno tras otro. Si uno además quiere entrar a la data del índiceEl "Índice" es una herramienta fundamental en libros y documentos, que permite ubicar rápidamente la información deseada. Generalmente, se presenta al inicio de una obra y organiza los contenidos de manera jerárquica, incluyendo capítulos y secciones. Su correcta elaboración facilita la navegación y mejora la comprensión del material, convirtiéndolo en un recurso esencial tanto para estudiantes como para profesionales en diversas áreas...., entonces, donde se encuentra el elemento de la lista sobre el que estamos iterando, podemos utilizar enumerar().
Como ejemplo, observe cómo por El bucle se convirtió creando una lista de áreas:
# areas list
areas = [11.25, 18.0, 20.0, 10.75, 9.50]
# Change for loop to use enumerate() and updateEl término "UPDATE" se utiliza comúnmente en el ámbito tecnológico y de la comunicación para referirse a la acción de actualizar información, software o sistemas. En un mundo en constante evolución, las actualizaciones son esenciales para mejorar la seguridad, corregir errores y añadir nuevas funciones. Empresas y usuarios deben estar atentos a las actualizaciones disponibles para asegurar un rendimiento óptimo y mantener la integridad de sus dispositivos y datos.... print()
for x, y in enumerate(areas) :
print("room ", str(x), ": ", str(y))
Producción:
room 0: 11.20 room 1: 18.0 room 2: 20.0 room 3: 10.75 room 4: 9.5
Bucle sobre diccionario – ítems ()
In Python 3, we need the items() method to loop over a dictionary. On each iteration, "the capital of x is y" will be printed out, where x is the key and y is the value of the pair.
# Definition of dictionary europe = {'spain':'madrid', 'france':'paris', 'germany':'berlin', 'norway':'oslo', 'italy':'rome', 'poland':'warsaw', 'austria':'vienna' } # Iterate over europe for x, y in europe.items(): print("the capital of ", str(x), " is ", str(y))
Producción:
the capital of norway is oslo the capital of poland is warsaw the capital of italy is rome the capital of spain is madrid the capital of austria is vienna the capital of germany is berlin
Bucle sobre matriz Numpy – np.nditer ()
Si estamos tratando con una matriz 1D Numpy, recorrer todos los ítems puede ser tan simple como:
for x in my_array :
Si estamos tratando con una matriz 2D Numpy, es más complejo. Una matriz 2D está formada por varias matrices 1D. Para iterar explícitamente sobre todos los ítems separados de una matriz multidimensional, necesitaremos esta sintaxis:
for x in np.nditer(my_array) :
A continuación, escribimos un bucle for que itera sobre todos los ítems de np_height e imprime “x pulgadas” para cada elemento, donde x es el valor de la matriz.
# Import numpy as np import numpy as np # For loop over np_height for x in np_height: print(x, "inches") # For loop over np_baseball for n in np.nditer(np_baseball): print(n)
Producción:
74 inches 74 inches 72 inches 72 inches 73 inches 69 inches 69 inches 71 inches 76 inches 71 inches 73 inches…..
Recorriendo iterrows ():
Usando iterrows () para iterar sobre cada observación de un Pandas DataFrame. Aquí, estamos usando un bucle for para agregar una nueva columna, llamada PAÍS, que contiene una versión en mayúsculas de los nombres de los países en la columna «país». Estamos usando el método de cadena superior() para esto.
# Import cars data import pandas as pd cars = pd.read_csv('cars.csv', index_col = 0) # Code for loop that adds COUNTRY column for lab, row in cars.iterrows(): cars.loc[lab, "COUNTRY"] = row['country'].upper() # Print cars print(cars)
Utilizar iterrows () para iterar sobre cada observación de un Pandas DataFrame es fácil de comprender, pero no muy eficiente. En cada iteración, estamos creando una nueva serie Pandas en Python. Si queremos agregar una columna a un DataFrame llamando a una función en otra columna, el método iterrows () en combinación con un bucle for no es la forma preferida de hacerlo. En su lugar, queremos utilizar solicitar()
A continuación usaremos el solicitar() versión para obtener el mismo resultado en el DataFrame:
# Use .apply(str.upper) cars["COUNTRY"] = cars["country"].apply(str.upper) print(cars)
Producción:
cars_per_cap country drives_right (US, COUNTRY) US 809 United States True UNITED STATES AUS 731 Australia False AUSTRALIA JPN 588 Japan False JAPAN IN 18 India False INDIA RU 200 Russia True RUSSIA MOR 70 Morocco True MOR
Podemos usar las herramientas de iteración anteriores para trabajar con la iteración en Python de una manera más efectiva. Este fue solo el resumen de la iteración. Se puede trabajar con diferentes ejemplos.
Los medios que se muestran en este post no son propiedad de DataPeaker y se usan a discreción del autor.