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

283
Vistas
np.where para matriz 2d, manipular filas enteras

Quiero reconstruir la siguiente lógica con una función de transmisión numpy como np.where : desde una matriz 2d, verifique por fila si el primer elemento satisface una condición. Si la condición es verdadera, devuelva los primeros tres elementos como una fila, de lo contrario, los últimos tres elementos.

Un MWE corto en forma de bucle for que quiero eludir:

 import numpy as np array = np.array([ [1, 2, 3, 4], [1, 2, 4, 2], [2, 3, 4, 6] ]) new_array = np.zeros((array.shape[0], array.shape[1]-1)) for i, row in enumerate(array): if row[0] == 1: new_array[i] = row[:3] else: new_array[i] = row[-3:]
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

IIUC quieres algo como esto:

 condition = array[:,0]==1 new_array[condition,:] = array[condition,:3] new_array[~condition,:] = array[~condition,-3:]
over 4 years ago · Santiago Trujillo Denunciar

0

Si quieres usar np.where :

 import numpy as np array = np.array([ [1, 2, 3, 4], [1, 2, 4, 2], [2, 3, 4, 6] ]) cond = array[:, 0] == 1 np.where(cond[:, None], array[:,:3], array[:,-3:])

producción:

 array([[1, 2, 3], [1, 2, 4], [3, 4, 6]])

EDITAR

versión un poco más concisa:

 np.where(array[:, [0]] == 1, array[:,:3], array[:,-3:])
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