Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

310
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!