合并 numpy 数组 "element-wise"

combine numpy array "element-wise"

目前我有两个数组:a1 的形状是 (5,4,6,3),第二个 a2 是 (5,4,6) 最后我想得到一个合并的数组 (5, 4,6,4)

目前我 "for-loop" 每个 (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 大很多,它就不是很有效了。

你有更好的方法吗?

这是你想要的吗?

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)