I\'m trying to calculate a summed area table of a feature count matrix using python and numpy. Currently I\'m using the following code:
def summed_area_table
There's a NumPy function cumsum
for cumulative sums. Applying it twice yields the desired table:
import numpy as np
A = np.random.randint(0, 10, (3, 4))
print A
print A.cumsum(axis=0).cumsum(axis=1)
Output:
[[7 4 7 2]
[6 9 9 5]
[6 6 7 6]]
[[ 7 11 18 20]
[13 26 42 49]
[19 38 61 74]]
Performance analysis: (https://stackoverflow.com/a/25351344/3419103)
import numpy as np
import time
A = np.random.randint(0, 10, (3200, 1400))
t = time.time()
S = A.cumsum(axis=0).cumsum(axis=1)
print np.round_(time.time() - t, 3), 'sec elapsed'
Output:
0.15 sec elapsed