结合二维 numpy 数组 "row-wise"
Combining 2d numpy array "row-wise"
我有两个用 numpy 创建的二维数组(但行的长度不同):
a = [[1,2,3,4,5],
[6,7,8,9]]
b = [[1,2,30,40,50],
[6,7,80,90,100]]
我想将这两个数组组合成一个新数组,保留重复值并“逐行”添加新值:
#desired output
c = [[1,2,3,4,5,30,40,50],
[6,7,8,9,80,90,100]]
我尝试了很多方法,包括 np.apply_along_axis
和 np.unique
或者简单地循环每一行并附加到一个列表,然后从该列表创建一个数组。我得到的最接近的结果是一个数组数组,如下所示:
array(array([1,2,3,4,5,30,40,50]), array([6,7,80,90,100]))
以上结果没有帮助,我需要一个 numpy 数组。任何帮助将不胜感激。
让我们使用 union
:
[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])]
如果你真的需要列表列表:
[np.union1d(x,y).tolist() for x,y in zip(a,b)]
输出:
[[1, 2, 3, 4, 5, 30, 40, 50], [6, 7, 8, 9, 80, 90, 100]]
我有两个用 numpy 创建的二维数组(但行的长度不同):
a = [[1,2,3,4,5],
[6,7,8,9]]
b = [[1,2,30,40,50],
[6,7,80,90,100]]
我想将这两个数组组合成一个新数组,保留重复值并“逐行”添加新值:
#desired output
c = [[1,2,3,4,5,30,40,50],
[6,7,8,9,80,90,100]]
我尝试了很多方法,包括 np.apply_along_axis
和 np.unique
或者简单地循环每一行并附加到一个列表,然后从该列表创建一个数组。我得到的最接近的结果是一个数组数组,如下所示:
array(array([1,2,3,4,5,30,40,50]), array([6,7,80,90,100]))
以上结果没有帮助,我需要一个 numpy 数组。任何帮助将不胜感激。
让我们使用 union
:
[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])]
如果你真的需要列表列表:
[np.union1d(x,y).tolist() for x,y in zip(a,b)]
输出:
[[1, 2, 3, 4, 5, 30, 40, 50], [6, 7, 8, 9, 80, 90, 100]]