2017-05-02 7 views
1

나는 다음과 NumPy와 매트릭스가 :합계 n 번째 열은 NumPy와 매트릭스에 elementwise

A = [[a,b,c,d,e,f], 
    [g,h,i,j,k,l], 
    ...] 

나는 elementwise 방식으로 모든 n 번째 열을 요약해야한다. (. 2 열이 3 각으로 매트릭스를 파괴하고 추가 등) : n이 2 인 경우에 따라서, 대답은 할 필요가

B = [[a+c+e, b+d+f], 
    [g+i+k, h+j+l], 
    ...] 

그러나, n은 3, 응답 요구하는 경우 되어야 :

C = [[a+d, b+e, c+f], 
    [g+j, h+k, i+l], 
    ...] 

루핑 의지하지 않고 n 값을 수용하는 일반적인 경우가있다 (3 열 각각 2로 행렬을 나누고 이들을 추가하는 등.)?

답변

3

모양 변경은 전 길이를 따라 n과 합 후자 둘로 마지막 축을 분할 -

A.reshape(A.shape[0],-1,n).sum(1) 

샘플 런 -

In [38]: A 
Out[38]: 
array([[0, 5, 3, 2, 5, 6], 
     [6, 1, 0, 8, 4, 0], 
     [8, 6, 1, 5, 7, 0]]) 

In [39]: n = 2 

In [40]: A.reshape(A.shape[0],-1,n).sum(1) 
Out[40]: 
array([[ 8, 13], 
     [10, 9], 
     [16, 11]]) 

In [41]: n = 3 

In [42]: A.reshape(A.shape[0],-1,n).sum(1) 
Out[42]: 
array([[ 2, 10, 9], 
     [14, 5, 0], 
     [13, 13, 1]]) 
+0

매우 우아 용액. 완벽하게 일했습니다. – CodeCabbie