2017-03-15 121 views
0

我有(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) 
+0

尝试追加行的总和作为列首先创建一个'(n,n + 1)维数组,_then_将行的总和作为一行。 – Praveen

回答

1

你可以那样做: 首先,让我们产生一些矩阵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)入口以及。