Home > other >  Zipping two np.array into array
Zipping two np.array into array

Time:11-02

Im trying to combine following two np.arrays into a single array:

prediction_score =
[0.99764085 0.26231623 0.07232302]

prediction_boxes =
[[282.25906   79.13187  420.98575  226.11221 ]
 [109.91688   94.8121   333.07764  225.87985 ]
 [340.3894    96.612015 601.4172   231.13196 ]]

The combination array must look like this [[i, pred, boxes],...]:

prediction_boxes =
[[1 0.99764085 282.25906   79.13187  420.98575  226.11221 ]
 [1 0.26231623 109.91688   94.8121   333.07764  225.87985 ]
 [1 0.07232302 340.3894    96.612015 601.4172   231.13196 ]]

I tried doing it this way, but it unfortunately didn't work:

import numpy as np

i=1

for x in range(len(pred_scores)):
    np.insert(pred_bboxes[x], 0, pred_scores[x])
    np.insert(pred_bboxes[x], 0, i)
print(pred_bboxes)

Is there a way to do this? I tried other means but those tries were even worse.

CodePudding user response:

Try hstack:

np.hstack(([[1]]*len(pred_boxes),     # classes
           pred_scores[...,None],     # scores
           pred_boxes)                # boxes
         )

CodePudding user response:

Numpy's concatenate function deals with this nicely. Try something like:

output = np.concatanate((prediction_score.T, prediction_boxes), axis = 1)
  • Related