2012-10-24 4 views
2

하이 그 결과를 추가 I가대하여 반복하여 다른 배열이

[[ 47 43 51 81 54 81 52 54 31 46] 
    [ 35 21 30 16 37 11 35 30 39 37] 
    [ 8 17 11 2 5 4 11 9 17 10] 
    [ 5 9 4 0 1 1 0 3 9 3] 
    [ 2 7 2 0 0 0 0 1 2 1] 
    [215 149 299 199 159 325 179 249 249 199] 
    [ 27 49 24 4 21 8 35 15 45 25] 
    [100 100 100 100 100 100 100 100 100 100]] 

는 I 행 0,1,2 모든 요소를 ​​합산 매트릭스 반복해야 다음 행렬 3,4- 만 예 : I는

row_0_sum = 47+43+51+81....46 

는 또한 I는 각 행이

[row0_sum, row1_sum, row2_sum, row3_sum, row4_sum] 
,369처럼 배열 합계 저장해야 할 필요

은 지금까지 나는이 코드를 시도하지만이 일을하지 :

mu = np.zeros(shape=(1,6)) 

    #get an average 
    def standardize_ratings(matrix): 
sum = 0 
for i, eli in enumerate(matrix): 
    for j, elj in enumerate(eli): 
     if(i<5): 
     sum = sum + matrix[i][j] 
     if(j==elj.len -1): 
      mu[i] = sum 
      sum = 0 
      print "mu[i]=" 
      print mu[i] 

이 바로 나에게 Error을 제공합니다 : numpy.int32 object has no attribute 'len'

그래서 누군가가 나를 도울 수 있습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇이며 파이썬에서 어떤 유형의 배열을 저장해야합니까? 임 .... 파이썬에 새로운하지만 프로그래밍했을

Thannks

+0

에서이 일을 잘 알고있는 경우 J == eli.len-1 :'는 NumPy와는 이미 같은 –

답변

5

는 데이터, matrix하는 numpy.ndarray 객체 대신 목록의 목록을 확인하고 바로 matrix.sum(axis=1)을한다. 당신은 시작 만 그들에게 요약을 적용하는 대안 하위 선택 행만 수

>>> row_sums = matrix.sum(axis=1) 
>>> rows_0_through_4_sums = row_sums[:5] 
>>> print rows_0_through_4_sums 
[540 291 94 35 15] 

을 또는 :

>>> matrix = np.asarray([[ 47, 43, 51, 81, 54, 81, 52, 54, 31, 46], 
    [ 35, 21, 30, 16, 37, 11, 35, 30, 39, 37], 
    [ 8, 17, 11, 2, 5, 4, 11, 9, 17, 10], 
    [ 5, 9, 4, 0, 1, 1, 0, 3, 9, 3], 
    [ 2, 7, 2, 0, 0, 0, 0, 1, 2, 1], 
    [215, 149, 299, 199, 159, 325, 179, 249, 249, 199], 
    [ 27, 49, 24, 4, 21, 8, 35, 15, 45, 25], 
    [100, 100, 100, 100, 100, 100, 100, 100, 100, 100]]) 

>>> print matrix.sum(axis=1) 
[ 540 291 94 35 15 2222 253 1000] 

이 결과에서 처음 다섯 개 행을 얻으려면, 당신은 다만 수 :

>>> rows_0_through_4 = matrix[:5,:] 
>>> print rows_0_through_4.sum(axis=1) 
[540 291 94 35 15] 

일부 유용한 링크 은 다음과 같습니다

NumPy for Matlab Users, 당신이 경우 난 당신이`수를 의미 생각 matlab에/옥타브

Slicing/Indexing in NumPy

+0

그것은 보인다. 목록이 쉼표로 그 목록에 인쇄됩니다. – mgilson

+0

그래, 그건 사실 일거야. 그러나 나는 그것을 위해 커버하기를 원했다. – ely

+0

또한 OP가 처음부터 끝까지 5 개 행을 잘라내는 방법을 사용자에게 보여주고 싶을 수도 있습니다 ... – mgilson