是否可以在不广播的情况下添加两个不同大小的阵列?
据我所知,广播将值添加到较小的数组以填充该空间。但这会扭曲我的结果。我想知道是否有某种方法可以添加两个不同大小的数组,而不必妥协这些值?
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对齐
我该怎么做?
答案 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]])