Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

274
Visualizações
Comportamiento de concatenación numpy. Cómo concatenar ejemplo correctamente

Tengo la siguiente matriz multidimensional:

 windows = array([[[[[[0., 0.], [1., 0.]], [[0., 0.], [1., 0.]], [[0., 0.], [1., 0.]]], [[[0., 1.], [0., 0.]], [[0., 1.], [0., 0.]], [[1., 0.], [0., 0.]]], [[[1., 0.], [0., 0.]], [[0., 1.], [0., 0.]], [[0., 1.], [0., 0.]]]]]]) print(windows.shape) (1, 1, 3, 3, 2, 2) # (n, d, a, b, c, c) w = a * (c*c), h = b * (c*c)

Quiero obtener la siguiente matriz resultante:

 mask = array([[ [[0., 0., 0., 0., 0., 0.], [1., 0., 1., 0., 1., 0.], [0., 1., 0., 1., 1., 0.], [0., 0., 0., 0., 0., 0.], [1., 0., 0., 1., 0., 1.], [0., 0., 0., 0., 0., 0.]] ]], dtype=np.float32) print(mask.shape) (1, 1, 6, 6) # (n, d, w, h)

Básicamente, quiero comprimir las últimas 4 dimensiones en una matriz bidimensional para que la forma final se convierta en (n, d, w, h), en este caso (1, 1, 6, 6).

np.concatenate(windows, axis = 2) , pero no se concatenó a lo largo de la segunda dimensión y se redujo por alguna razón primero (aunque configuré axis = 2) 'n' dimensión.

Información adicional:
Windows es el resultado del siguiente fragmento de código

 windows = np.lib.stride_tricks.sliding_window_view(arr, (c, c), axis (-2,-1), writeable = True) # arr.shape == mask.shape windows = windows[:, :, ::c, ::c] # these are non-overlapping windows of arr with size (c,c) windows = ... # some modifications of windows

Ahora quiero construir a partir de esta matriz de ventanas con la forma de arr.shape , esta matriz se llama mask en el ejemplo anterior. La remodelación simple no funciona porque devuelve los elementos en un orden incorrecto.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

IIUC, desea fusionar las dimensiones 2+4 y 3+5, una manera fácil sería intercambiar los swapaxes 4 y 5 (o -3 y -2), y reshape a (1,1,6,6):

 windows.swapaxes(-2,-3).reshape(1,1,6,6)

producción:

 array([[[[0., 0., 0., 0., 0., 0.], [1., 0., 1., 0., 1., 0.], [0., 1., 0., 1., 1., 0.], [0., 0., 0., 0., 0., 0.], [1., 0., 0., 1., 0., 1.], [0., 0., 0., 0., 0., 0.]]]])
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda