首页 > 解决方案 > 结合numpy数组“元素方式”

问题描述

目前我有两个数组: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 大得多,它的效率就不是很高。

你有更好的方法吗?

标签: pythonnumpyfor-loopmatrix-inverseelementwise-operations

解决方案


这是你想要的吗?

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)

推荐阅读