Skip to content

Instantly share code, notes, and snippets.

@MSeifert04
Created August 11, 2016 15:09
Show Gist options
  • Save MSeifert04/1551e80e1aa85b48c9191e727c38f9a9 to your computer and use it in GitHub Desktop.
Save MSeifert04/1551e80e1aa85b48c9191e727c38f9a9 to your computer and use it in GitHub Desktop.
import numpy as np
a = np.arange(1000000, dtype=float).reshape(1000, 1000)
a[100, 100] = np.nan
%timeit np.nanmedian(a, axis=None)
%timeit np.ma.median(np.ma.masked_invalid(a), axis=None)
%timeit np.nanmedian(a, axis=0)
%timeit np.ma.median(np.ma.masked_invalid(a), axis=0)
%timeit np.nanmedian(a, axis=1)
%timeit np.ma.median(np.ma.masked_invalid(a), axis=1)
10 loops, best of 3: 63.3 ms per loop
10 loops, best of 3: 186 ms per loop
1 loop, best of 3: 235 ms per loop
10 loops, best of 3: 157 ms per loop
1 loop, best of 3: 198 ms per loop
10 loops, best of 3: 123 ms per loop
###################################################
import numpy as np
a = np.arange(1000000, dtype=float).reshape(1000, 1000)
a[(a % 3) == 0] = np.nan
print(np.sum(np.isnan(a)))
%timeit np.nanmedian(a, axis=None)
%timeit np.ma.median(np.ma.masked_invalid(a), axis=None)
%timeit np.nanmedian(a, axis=0)
%timeit np.ma.median(np.ma.masked_invalid(a), axis=0)
%timeit np.nanmedian(a, axis=1)
%timeit np.ma.median(np.ma.masked_invalid(a), axis=1)
333334
10 loops, best of 3: 29.5 ms per loop
1 loop, best of 3: 222 ms per loop
1 loop, best of 3: 260 ms per loop
10 loops, best of 3: 197 ms per loop
1 loop, best of 3: 219 ms per loop
10 loops, best of 3: 162 ms per loop
########################################################
import numpy as np
a = np.arange(1000000, dtype=float).reshape(1000, 1000)
print(np.sum(np.isnan(a)))
%timeit np.nanmedian(a, axis=None)
%timeit np.ma.median(np.ma.masked_invalid(a), axis=None)
%timeit np.nanmedian(a, axis=0)
%timeit np.ma.median(np.ma.masked_invalid(a), axis=0)
%timeit np.nanmedian(a, axis=1)
%timeit np.ma.median(np.ma.masked_invalid(a), axis=1)
0
100 loops, best of 3: 17 ms per loop
10 loops, best of 3: 38.5 ms per loop
1 loop, best of 3: 235 ms per loop
10 loops, best of 3: 64.2 ms per loop
1 loop, best of 3: 197 ms per loop
10 loops, best of 3: 39 ms per loop
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment