2017-08-29 115 views
0

我已經從使用numpy的csv文件中獲得的數據。 numpy數組的尺寸爲:100 * 20。我如何採取列的平均水平(比如說山坳3,5,8),並與這些3周的cols的一個新的包含平均列以列的平均在numpy的陣列

如果

col3 = 1,2,3,4 
    col5 = 2,3,4,8 
    col8 = 3,4,5,6 

然後我想刪除這些3列,並取代它們插入新列,其中每個條目包含這些3列

我要插入一個新列的平均值:2,3,4,6,刪除以前的3個COLS和最後陣列的維數爲100 * 28

是否有任何numpy的功能做到這一點?

+0

事情還不清楚 - 1)我們是如何以'28'列結束的? 2)刪除前3個cols中的「previous」是什麼意思? 3)插入新列在哪裏? – Divakar

+0

我有30周的cols早些時候,我採取col3,5,8的平均並將其存儲和刪除這些3,所以現在的cols是27.現在地方插入取平均值山坳。所以總cols = 28 – mcjoshi

+0

你應該提供[mcve] –

回答

1
a = np.arange(100*30).reshape(100,30) # change this to your own data 
cols = [2, 4, 7] # columns to calculate averages, i.e. 3, 5, 8 
b = a[:, cols] # data of the cols 
c = b.mean(axis=1) # average 
a_no_b = np.delete(a, cols) # data without the cols 
a_final = np.c_[a_no_b, c] # final result