I want to compute the integral image. for example
a=array([(1,2,3),(4,5,6)])
b = a.cumsum(axis=0)
This will generate another array b.Can I execute the cumsum
in-place. If not . Are there any other methods to do that
I want to compute the integral image. for example
a=array([(1,2,3),(4,5,6)])
b = a.cumsum(axis=0)
This will generate another array b.Can I execute the cumsum
in-place. If not . Are there any other methods to do that
You have to pass the argument out
:
np.cumsum(a, axis=1, out=a)
OBS: your array is actually a 2-D array, so you can use axis=0
to sum along the rows and axis=1
to sum along the columns.
a
is the original one –
Hippocrene hash()
, but np.ndarrays are unhashable... –
Cosmetician a.data
. I have confirmed that it's in-place in your way thanks –
Hippocrene .data
in Cython but I never thought of using it for other purposes –
Cosmetician a.data
for this. It will only work in a very limited number of cases (e.g. what you're doing where the same array is returned, instead of a new array that shares the same data). Use numpy.may_share_memory
instead. –
Hearten Try this using numpy directly numpy.cumsum(a)
:
a=array([(1,2,3)])
b = np.cumsum(a)
print b
>>array([1,3,6])
© 2022 - 2024 — McMap. All rights reserved.