2017-03-15 116 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)入口以及。