1

是否有一种简单的方法可以遍历二维数组以存储迄今为止在沿特定维度遍历时获得的最大值。例如,我有一个数组:

[[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 回答