Я не знаком с scipy разреженными массивами, но если они будут вести себя как другие python итерируемые , то комбинация map и zip достигнет того, что выхочу:
>>> arr
[[0, 3, 99, 3], [4, 2, 1234, 0], [88, 287, 0, 77]]
>>> zip(*arr)
[(0, 4, 88), (3, 2, 287), (99, 1234, 0), (3, 0, 77)]
>>> map(max, zip(*arr))
[88, 287, 1234, 77]