2

こんにちは、私は次のマトリックスを持っています

 [[ 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]

これは私にErrornumpy.int32 object has no attribute 'len'

だから誰かが私を助けることができます。これを行うための最良の方法は何ですか?これを格納するためにPythonでどのタイプの配列を使用する必要がありますか。Pythonは初めてですが、プログラミングは行っています。

サンクス

4

1 に答える 1

5

リストのリストの代わりにデータをmatrixオブジェクトにしてから、 を実行します。numpy.ndarraymatrix.sum(axis=1)

>>> 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]

結果から最初の 5 行を取得するには、次のようにします。

>>> 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 ユーザー向けの NumPy 、 Matlab/Octave でこれらのことに精通している場合

NumPy でのスライス/インデックス作成

于 2012-10-24T13:37:11.733 に答える