Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

209
Vistas
multiplicar todas las listas en la lista de listas

Tengo una lista de máscaras y quiero obtener la máscara resultante multiplicándolas todas. Mi enfoque de Donkey Kong es el siguiente:

 a = [[1, 1], [1, 0], [1, 0]] b = a[0] for i in range(1, len(a)): b = b * np.array(a[i])

que creo que funciona como devuelve [1,0] como valor de b .

¿Hay una manera más agradable de hacer esto?


EDITAR: estoy buscando rangos comunes en la máscara. Para encontrar todos los rangos distintos de cero, hago lo siguiente: etiqueta = 0

 for i in range(1, len(labels)): label = label + np.array(labels[i]) label = [1 if x > 0 else 0 for x in label]
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Eche un vistazo a np.prod , que devuelve el producto de los elementos de la matriz sobre un eje dado:

 import numpy as np a = [[1, 1], [1, 0], [1, 0]] np.prod(a, axis=0)
over 4 years ago · Santiago Trujillo Denunciar

0

Veo que ya está usando numpy, por lo que puede usarse como sugirieron otras respuestas. Pero aún así, una buena solución integrada que solo usa reduce puede ser:

 from functools import reduce a = [[1, 1], [1, 0], [1, 0]] def element_wise_multiply(list1, list2): return [x*y for x,y in zip(list1, list2)] b = reduce(element_wise_multiply, a) # Or as a lambda: b = reduce(lambda list1, list2: [x*y for x,y in zip(list1, list2)], a)

Esto toma cada dos sublistas y las reduce a una multiplicando todos los elementos de coincidencia de índice usando zip . También da:

 [1, 0]
over 4 years ago · Santiago Trujillo Denunciar

0

Una forma integrada con all esos cortocircuitos (no hay otra respuesta a los cortocircuitos ahora):

 >>> [all(column) for column in zip(*a)] [True, False]

donde zip(*a) de transposición para producir "columnas" como sublistas aquí y verificamos si todas las entradas son verdaderas. all tienen un comportamiento de circuito corto.

Puede int(all(sub)) para convertir los resultados en un número entero después de all 'en las sublistas.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda