我有多个相同大小的列表(或numpy数组),我想返回一个在每个点上都有最大值的相同大小的数组。
例如,

A = [[0,1,0,0,3,0],[1,0,0,2,0,3]]
B = [[1,0,0,0,0,4],[0,5,6,0,1,1]]
C = numpy.zeros_like(A)
for i in xrange(len(A)):
    for j in xrange(len(A[0])):
        C[i][j] = max(A[i][j],B[i][j])

结果是C=[[1,1,0,0,3,4],[1,5,6,2,1,3]]
这很好,但不是很有效-特别是对于我拥有的数组大小和需要比较的数组数量。我怎样才能更有效地做到这一点?

最佳答案

使用numpy.maximum
numpy.maximum(x1, x2[, out])元素的数组最大值
元素。
比较两个数组并返回包含元素的新数组
极大值。如果被比较的元素之一是nan,那么
返回元素。如果两个元素都是nan,那么第一个元素是
返回。后一种区分对于复杂的nan非常重要
被定义为至少一个实部或虚部
南。最终的效果是,nans被传播。

10-07 19:48