2017-07-25 61 views
3

例如,有一個4×2矩陣:過程矩陣

[[1, 2], [3, 4], [5, 6],[7,8]] 

我想將它重塑爲2×2矩陣和它的值是原始矩陣的平均值,所以結果將是:

[[2,3],[6,7]] 

有沒有做任何有效的方法?由於

回答

2

可以重塑陣列至3d再取沿着第二軸的意思是:

a = np.array([[1, 2], [3, 4], [5, 6],[7,8]]) 
step = 2 

a.reshape(-1, step, a.shape[-1]).mean(1) 
#array([[ 2., 3.], 
#  [ 6., 7.]]) 

或者使用np.add.reduceat每兩行添加,然後除以2:

step = 2 
np.add.reduceat(a, np.arange(0,len(a),step))/step 
#array([[ 2., 3.], 
#  [ 6., 7.]])