8000 Merge pull request #8030 from lesteve/fix-ma-median-with-only-one-non… · numpy/numpy@3333e8b · GitHub
[go: up one dir, main page]

Skip to content

Commit 3333e8b

Browse files
authored
Merge pull request #8030 from lesteve/fix-ma-median-with-only-one-non-masked-value
BUG: fix np.ma.median with only one non-masked value and an axis argument
2 parents b91e8d8 + ed30048 commit 3333e8b

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

numpy/ma/extras.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -727,9 +727,8 @@ def _median(a, axis=None, out=None, overwrite_input=False):
727727
ind = np.meshgrid(*axes_grid, sparse=True, indexing='ij')
728728

729729
# insert indices of low and high median
730-
ind.insert(axis, h - 1)
730+
ind.insert(axis, np.maximum(0, h - 1))
731731
low = asorted[tuple(ind)]
732-
low._sharedmask = False
733732
ind[axis] = h
734733
high = asorted[tuple(ind)]
735734

numpy/ma/tests/test_extras.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -790,6 +790,15 @@ def test_out(self):
790790
assert_equal(r, out)
791791
assert_(type(r) == MaskedArray)
792792

793+
def test_single_non_masked_value_on_axis(self):
794+
data = [[1., 0.],
795+
[0., 3.],
796+
[0., 0.]]
797+
masked_arr = np.ma.masked_equal(data, 0)
798+
expected = [1., 3.]
799+
assert_array_equal(np.ma.median(masked_arr, axis=0),
800+
expected)
801+
793802

794803
class TestCov(TestCase):
795804

0 commit comments

Comments
 (0)
0