Python “组合2d numpy阵列”;“行方式”;

Python “组合2d numpy阵列”;“行方式”;,python,arrays,numpy,numpy-ndarray,array-broadcasting,Python,Arrays,Numpy,Numpy Ndarray,Array Broadcasting,我使用numpy创建了两个二维数组(但行的长度不同): a=[[1,2,3,4,5], [6,7,8,9]] b=[[1,2,30,40,50], [6,7,80,90,100]] 我想将这两个数组合并成一个新数组,保留重复的值并“按行”添加新值: #所需输出 c=[[1,2,3,4,5,30,40,50], [6,7,8,9,80,90,100]] 我尝试了很多方法,包括np.使用np.unique沿_轴应用_,或者简单地循环每一行并附加到列表,然后创建该列表的数组形式。我得到的最接近的结

我使用numpy创建了两个二维数组(但行的长度不同):

a=[[1,2,3,4,5],
[6,7,8,9]]
b=[[1,2,30,40,50],
[6,7,80,90,100]]
我想将这两个数组合并成一个新数组,保留重复的值并“按行”添加新值:

#所需输出
c=[[1,2,3,4,5,30,40,50],
[6,7,8,9,80,90,100]]
我尝试了很多方法,包括
np.使用
np.unique
沿_轴应用_
,或者简单地循环每一行并附加到列表,然后创建该列表的数组形式。我得到的最接近的结果是一组数组,如下所示:

array(array([1,2,3,4,5,30,40,50]), array([6,7,80,90,100]))


上面的结果没有帮助,我需要一个numpy数组。任何帮助都将不胜感激。

让我们使用
联合

[np.union1d(x,y) for x,y in zip(a,b)]
输出:

[array([ 1,  2,  3,  4,  5, 30, 40, 50]),
 array([  6,   7,   8,   9,  80,  90, 100])]
[[1, 2, 3, 4, 5, 30, 40, 50], [6, 7, 8, 9, 80, 90, 100]]
如果您确实需要列表列表:

[np.union1d(x,y).tolist() for x,y in zip(a,b)]
输出:

[array([ 1,  2,  3,  4,  5, 30, 40, 50]),
 array([  6,   7,   8,   9,  80,  90, 100])]
[[1, 2, 3, 4, 5, 30, 40, 50], [6, 7, 8, 9, 80, 90, 100]]

a
有两个元素,一个长度为5,一个长度为4。这是故意的吗?是的,它们不会共享相同的维度。在
a
b
的每个子数组中是否有重复项?无法确保,因为我将对任何数据集应用这一机器学习算法。谢谢,这将完成工作!