Python – Array de columnas personalizadas

A veces, mientras trabajamos con listas de Python, podemos tener un problema en el que necesitamos extraer ciertas columnas de Matrix y volver a crearlas. Este tipo de problema puede tener aplicaciones en dominios de datos, ya que utilizan Matrix como un parámetro de entrada destacado. Analicemos ciertas formas en que se puede realizar esta tarea.

Entrada : test_list = [[5, 4, 3, 4], [7, 6, 3, 2], [8, 3, 9, 10]], col_list = [2]
Salida : [[3], [3 ], [9]]

Entrada : test_list = [[5, 4], [6, 2], [8, 3]], col_list = [1]
Salida : [[4], [2], [3]]

Método #1: Uso de la comprensión de listas
Esto ofrece una de las formas de resolver este problema. En esto, realizamos la extracción de columnas selectivas utilizando la comprensión de listas anidadas.

# Python3 code to demonstrate working of 
# Custom Columns Matrix
# Using list comprehension
  
# initializing list
test_list = [[5, 4, 3, 4],
             [7, 6, 3, 2], 
             [8, 3, 9, 10]]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing Columns list 
col_list = [1, 3]
  
# Custom Columns Matrix
# Using list comprehension
res = [[sub[idx] for idx in col_list] for sub in test_list]
  
# printing result 
print("Matrix after filtering : " + str(res))
Producción :

The original list : [[5, 4, 3, 4], [7, 6, 3, 2], [8, 3, 9, 10]]
Matrix after filtering : [[4, 4], [6, 2], [3, 10]]

Método n.° 2: usar itemgetter()la comprensión de lista +
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de obtener índices usando itemgetter().

# Python3 code to demonstrate working of 
# Custom Columns Matrix
# Using itemgetter() + list comprehension
from operator import itemgetter
  
# initializing list
test_list = [[5, 4, 3, 4],
             [7, 6, 3, 2], 
             [8, 3, 9, 10]]
  
# printing original list 
print("The original list : " + str(test_list))
  
# initializing Columns list 
col_list = [1, 3]
  
# Custom Columns Matrix
# Using itemgetter() + list comprehension
res = [list(itemgetter(*col_list)(ele)) for ele in test_list]
  
# printing result 
print("Matrix after filtering : " + str(res))
Producción :

The original list : [[5, 4, 3, 4], [7, 6, 3, 2], [8, 3, 9, 10]]
Matrix after filtering : [[4, 4], [6, 2], [3, 10]]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 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 *