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

324
Vistas
concatenar matriz numpy: "ValueError: todas las matrices de entrada deben tener el mismo número de dimensiones"

¿Cómo concatenar estas matrices numpy ?

primer np.array con una forma (5,4)

 [[ 6487 400 489580 0] [ 6488 401 492994 0] [ 6491 408 489247 0] [ 6491 408 489247 0] [ 6492 402 499013 0]]

segundo np.array con una forma (5,)

 [ 16. 15. 12. 12. 17. ]

el resultado final debe ser

 [[ 6487 400 489580 0 16] [ 6488 401 492994 0 15] [ 6491 408 489247 0 12] [ 6491 408 489247 0 12] [ 6492 402 499013 0 17]]

np.concatenate([array1, array2]) pero aparece este error

ValueError: all the input arrays must have same number of dimensions

¿Qué estoy haciendo mal?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Para usar np.concatenate , necesitamos extender la segunda matriz a 2D y luego concatenar a lo largo axis=1 -

 np.concatenate((a,b[:,None]),axis=1)

Alternativamente, podemos usar np.column_stack que se encarga de eso:

 np.column_stack((a,b))

Ejecución de muestra -

 In [84]: a Out[84]: array([[54, 30, 55, 12], [64, 94, 50, 72], [67, 31, 56, 43], [26, 58, 35, 14], [97, 76, 84, 52]]) In [85]: b Out[85]: array([56, 70, 43, 19, 16]) In [86]: np.concatenate((a,b[:,None]),axis=1) Out[86]: array([[54, 30, 55, 12, 56], [64, 94, 50, 72, 70], [67, 31, 56, 43, 43], [26, 58, 35, 14, 19], [97, 76, 84, 52, 16]])

Si b es tal que es una matriz 1D de dtype=object con una forma de (1,) , lo más probable es que todos los datos estén contenidos en el único elemento que contiene, debemos aplanarlo antes de concatenar. Para ese propósito, también podemos usar np.concatenate . Aquí hay una ejecución de muestra para aclarar el punto:

 In [118]: a Out[118]: array([[54, 30, 55, 12], [64, 94, 50, 72], [67, 31, 56, 43], [26, 58, 35, 14], [97, 76, 84, 52]]) In [119]: b Out[119]: array([array([30, 41, 76, 13, 69])], dtype=object) In [120]: b.shape Out[120]: (1,) In [121]: np.concatenate((a,np.concatenate(b)[:,None]),axis=1) Out[121]: array([[54, 30, 55, 12, 30], [64, 94, 50, 72, 41], [67, 31, 56, 43, 76], [26, 58, 35, 14, 13], [97, 76, 84, 52, 69]])
over 4 years ago · Santiago Trujillo Denunciar

0

También hay np.c_

 >>> a = np.arange(20).reshape(5, 4) >>> b = np.arange(-1, -6, -1) >>> a array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19]]) >>> b array([-1, -2, -3, -4, -5]) >>> np.c_[a, b] array([[ 0, 1, 2, 3, -1], [ 4, 5, 6, 7, -2], [ 8, 9, 10, 11, -3], [12, 13, 14, 15, -4], [16, 17, 18, 19, -5]])
over 4 years ago · Santiago Trujillo Denunciar

0

Puedes hacer algo como esto.

 import numpy as np x = np.random.randint(100, size=(5, 4)) y = [16, 15, 12, 12, 17] print(x) val = np.concatenate((x,np.reshape(y,(x.shape[0],1))),axis=1) print(val)

Esto da como resultado:

 [[32 37 35 53] [64 23 95 76] [17 76 11 30] [35 42 6 80] [61 88 7 56]] [[32 37 35 53 16] [64 23 95 76 15] [17 76 11 30 12] [35 42 6 80 12] [61 88 7 56 17]]
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