Объединить массив "поэлементно"

В настоящее время у меня есть два массива: форма a1 (5,4,6,3), второй a2 (5,4,6) и, наконец, я хочу получить объединенный массив (5,4,6,4))

В настоящее время я "для цикла" каждый (6,3) массив и np.stack его с соответствующими (6,1) - (6,4).

for i in range(a1.shape[0]):
    for j in range(a1.shape[1]):
        a = np.hstack((a1[i,j], a2[i,j].reshape(6,1)))

Однако, это не очень эффективно, если оно намного больше, чем 5*4.

У тебя есть способ получше?

1 ответ

Решение

Это то, что вы хотите?

import numpy as np

a1 = np.ones((5, 4, 6, 3))
a2 = np.ones((5, 4, 6))

result = np.concatenate((a1, a2[..., np.newaxis]), axis=-1)

print(result.shape)

(5, 4, 6, 4)
Другие вопросы по тегам