添加100个不同大小的2D阵列(numpy)

时间:2018-03-02 01:34:04

标签: python arrays numpy

是否可以在不广播的情况下添加两个不同大小的阵列?

据我所知,广播将值添加到较小的数组以填充该空间。但这会扭曲我的结果。我想知道是否有某种方法可以添加两个不同大小的数组,而不必妥协这些值?

P = np.array([[1,2,3],[2,1,6],[7,9,1]])
L = np.array([[1,2],[4,1]])

输出看起来像这样:

P
1 2 3 
2 1 6
7 9 1

L
1 2  
4 1 

重要的是,当添加两个不同大小的矩阵时,每个方阵中的(对角线)1对齐

我该怎么做?

1 个答案:

答案 0 :(得分:0)

试试这个:

P + np.pad(L, (0,1), 'constant', constant_values=0)

所以:

>>> P
array([[1, 2, 3],
       [2, 1, 6],
       [7, 9, 1]])
>>> np.pad(L, (0,1), 'constant', constant_values=0)
array([[1, 2, 0],
       [4, 1, 0],
       [0, 0, 0]])
>>> P + np.pad(L, (0,1), 'constant', constant_values=0)
array([[2, 4, 3],
       [6, 2, 6],
       [7, 9, 1]])