es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una forma de lograr esto sin iteración es usar la función roll de numpy. Primero, podemos crear una máscara basada en la matriz de entrada original. En este caso, queremos desplazar la máscara una posición hacia la derecha a lo largo del segundo eje. Podemos hacer esto utilizando la función roll:

    import numpy as np
    
    input_array = np.array([[a, b, c], [1, 2, 3]])
    
    # Crear máscara
    mask = np.zeros_like(input_array)
    mask[1, :] = 1
    
    # Desplazar máscara
    mask_shifted = np.roll(mask, shift=1, axis=1)
    
    # Aplicar máscara a la matriz de entrada
    output_array = input_array * mask_shifted
    

    El resultado de output_array será:

    [[0, 0, a],
     [0, 1, b],
     [0, 2, c]]
    

    Este enfoque evita la iteración explícita sobre la matriz de entrada y en su lugar utiliza las funciones incorporadas de numpy para manipular los datos.

Comments are closed.