1

特定の次元に沿って移動しながら、これまでに取得した最大値を格納するために 2 次元配列を反復処理する簡単な方法はありますか。たとえば、私は配列を持っています:

[[2 ,  1,  5],
[-1, -1,  4],
[4, 3,  2],
[2 , 3, 4]]

次の出力が必要です。

[[2 ,  2,  5],
[-1, -1,  4],
[4, 4,  4],
[2 , 3, 4]]

ありがとう!

4

2 に答える 2

5

簡単; 使用accumulate:

>>> numpy.maximum.accumulate(a, axis=1)
array([[ 2,  2,  5],
       [-1, -1,  4],
       [ 4,  4,  4],
       [ 2,  3,  4]])
于 2012-07-09T20:46:02.040 に答える
0

計算時間が問題にならない場合は、次のようなことができます。

my_new_array = [ [max(my_array[i][:j+1]) for j in range(len(my_array[i]))] for i in range(len(my_array))]

ただし、実際には計算時間効率が良くありません。おそらく、2 ループを実行する方がはるかに効率的です。

于 2012-07-09T18:52:38.143 に答える