Python: iterar sobre columnas en NumPy

Numpy (abreviatura de ‘ Numerical Python ‘) es una biblioteca para realizar operaciones matemáticas a gran escala de manera rápida y eficiente. Este artículo sirve para educarlo sobre los métodos que se pueden usar para iterar sobre columnas en una array 2D NumPy. Dado que una array unidimensional solo consta de elementos lineales, no existe una definición distinguida de filas y columnas en ellos. Por lo tanto, para realizar tales operaciones necesitamos una array cuyo len(ary.shape) > 1 . Para instalar NumPy en su entorno Python, escriba el siguiente código en el procesador de comandos de su sistema operativo ( CMD, Bash, etc.):

pip instalar numpy

Estaríamos echando un vistazo a varios métodos de iteración sobre una columna de un Array/Matrix:- 

MÉTODO 1: CÓDIGO: uso de la operación de corte 2D primitivo en una array para obtener la columna/columnas deseadas 

Python3

import numpy as np
 
# Creating a sample numpy array (in 1D)
ary = np.arange(1, 25, 1)
 
# Converting the 1 Dimensional array to a 2D array
# (to allow explicitly column and row operations)
ary = ary.reshape(5, 5)
 
# Displaying the Matrix (use print(ary) in IDE)
print(ary)
 
# This for loop will iterate over all columns of the array one at a time
for col in range(ary.shape[1]):
    print(ary[:, col])

Producción:

[[ 0,  1,  2,  3,  4],
 [ 5,  6,  7,  8,  9],
 [10, 11, 12, 13, 14],
 [15, 16, 17, 18, 19],
 [20, 21, 22, 23, 24]])


[ 0  5 10 15 20]
[ 1  6 11 16 21]
[ 2  7 12 17 22]
[ 3  8 13 18 23]
[ 4  9 14 19 24]

Explicación: en el código anterior, primero creamos una array lineal de 25 elementos (0-24) usando np.arange(25) . Luego remodelamos (transformamos 1D a 2D) usando np.reshape() para crear una array 2D a partir de una array lineal. Luego generamos la array transformada. Ahora usamos un ciclo for que iteraba x veces (donde x es el número de columnas en la array) para lo cual usamos range() con el argumento ary.shape[1] (donde shape[1] = número de columnas en una array simétrica 2D). En cada iteración, sacamos una columna de la array usando ary[:, col], lo que significa que damos todos los elementos de la columna number = col

MÉTODO 2: en este método transpondríamos la array para tratar cada elemento de columna como un elemento de fila (que a su vez es equivalente a la iteración de columna). 

Código: 

Python3

# libraries
import numpy as np
 
# Creating an 2D array of 25 elements
ary = np.array([[ 0,  1,  2,  3,  4],
                [ 5,  6,  7,  8,  9],
                [10, 11, 12, 13, 14],
                [15, 16, 17, 18, 19],
                [20, 21, 22, 23, 24]])
 
 
# This loop will iterate through each row of the transposed
# array (equivalent of iterating through each column)
for col in ary.T:
    print(col)

Producción:

[ 0  5 10 15 20]
[ 1  6 11 16 21]
[ 2  7 12 17 22]
[ 3  8 13 18 23]
[ 4  9 14 19 24]

Explicación: Primero, creamos una array 2D (igual que el ejemplo anterior) usando np.array() y la inicializamos con 25 valores. Luego transponemos la array, usando ary.T que a su vez cambia las filas con las columnas y las columnas con las filas. Luego iteramos sobre cada fila de esta array transpuesta e imprimimos los valores de fila.

Publicación traducida automáticamente

Artículo escrito por VasuDev4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *