将行和列的总和追加到矩阵

时间:2017-03-15 21:29:31

标签: python numpy matrix scipy

我有(n,n)numpy数组。我想附加一个列向量,其中每个元素都是相应行的总和。我还在矩阵的末尾附加一个行向量,它是相应列的总和。但是,从维度角度来看,附加这些1D阵列是不兼容的。我想附加这些,但有一个矩阵,其中点(-1,-1)是最后一行或列的总和(因为它们相等)。

实施例

x = np.random.randint(5, size=(4, 4))
columns = np.sum(x,axis=1)
rows = np.sum(np.transpose(x),axis=1)

1 个答案:

答案 0 :(得分:2)

你可以这样做: 首先让我们生成一些矩阵a

n=5
k=4
a=np.zeros([n,k])
for i in range(n):
    for j in range(k):
        a[i][j]=i+2*j

然后运行以下命令。 这会添加行:

a=np.append(a,[np.sum(a,axis=0)],axis=0)

这会计算列

col=np.array([np.sum(a,axis=1)])

最后我们添加列

a=np.concatenate((a,col.T),axis=1)
print(a)

请注意,这也会处理(-1,-1)条目。