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

问题描述 投票:0回答:1

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

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

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对齐

我怎样才能做到这一点?

python arrays numpy
1个回答
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]])
© www.soinside.com 2019 - 2024. All rights reserved.