numpy数组迭代,以跟踪目前为止的最大数量

时间:2012-07-09 18:45:42

标签: python numpy

是否有一种简单的方法可以迭代二维数组来存储到目前为止在特定维度上遍历时获得的最大值。例如,我有一个数组:

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

我想要以下输出:

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

谢谢!

2 个答案:

答案 0 :(得分:5)

易于;使用accumulate

>>> numpy.maximum.accumulate(a, axis=1)
array([[ 2,  2,  5],
       [-1, -1,  4],
       [ 4,  4,  4],
       [ 2,  3,  4]])

答案 1 :(得分: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个循环可能会更有效率。