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))
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))
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