Python 对矩阵进行迭代,对一些行求和,然后将结果添加到另一个数组中

Python 对矩阵进行迭代,对一些行求和,然后将结果添加到另一个数组中,python,matrix,numpy,matplotlib,Python,Matrix,Numpy,Matplotlib,你好,我有下面的矩阵 [[ 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

你好,我有下面的矩阵

 [[ 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]]
我只需要在矩阵上迭代求和第0,1,2,3,4行中的所有元素 我需要

  row_0_sum = 47+43+51+81....46
此外,我需要将每行总和存储在这样的数组中

 [row0_sum, row1_sum, row2_sum, row3_sum, row4_sum]
到目前为止,我已经尝试过此代码,但它没有起到作用:

  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]
mu=np.zero(形状=(1,6))
#平均
def标准化U评级(矩阵):
总和=0
对于i,枚举中的eli(矩阵):
对于j,枚举中的elj(eli):

如果(i生成您的数据,
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]
或者,您也可以选择仅子选择要开始的行,并仅对其应用求和:

>>> rows_0_through_4 = matrix[:5,:]
>>> print rows_0_through_4.sum(axis=1)
[540 291  94  35  15]
以下是一些有用的链接:

,如果您熟悉Matlab/Octave中的这些内容


它看起来已经是numpy了。列表列表中会打印逗号是的,这可能是真的。但我想讨论一下以防万一。此外,您可能想向用户展示如何从列表中切分前5行,因为看起来这些是OP想要求和的唯一行……如果j==eli.len,我想您的意思是
-1:
>>> rows_0_through_4 = matrix[:5,:]
>>> print rows_0_through_4.sum(axis=1)
[540 291  94  35  15]