diff --git a/lib/iris/_lazy_data.py b/lib/iris/_lazy_data.py index a3f2b7a13c..1b3124a457 100644 --- a/lib/iris/_lazy_data.py +++ b/lib/iris/_lazy_data.py @@ -100,9 +100,10 @@ def array_masked_to_nans(array): if not ma.isMaskedArray(array): result = array else: - if array.dtype.kind == 'i': - array = array.astype(np.dtype('f8')) - mask = array.mask - array[mask] = np.nan + if ma.is_masked(array): + if array.dtype.kind == 'i': + array = array.astype(np.dtype('f8')) + mask = array.mask + array[mask] = np.nan result = array.data return result diff --git a/lib/iris/tests/unit/lazy_data/test_array_masked_to_nans.py b/lib/iris/tests/unit/lazy_data/test_array_masked_to_nans.py index e3c94bfb8c..b536b78c3a 100644 --- a/lib/iris/tests/unit/lazy_data/test_array_masked_to_nans.py +++ b/lib/iris/tests/unit/lazy_data/test_array_masked_to_nans.py @@ -89,12 +89,12 @@ def test_unmasked__integers(self): self.assertIs(result, unmasked_array) def test_no_mask__integers(self): - masked_array = ma.masked_array([1, 2], mask=ma.nomask) + masked_array = ma.masked_array([1, 2], dtype=np.int16, mask=ma.nomask) result = array_masked_to_nans(masked_array) self._common_checks(result) - self.assertEqual(result.dtype, np.dtype('f8')) + self.assertEqual(result.dtype, np.dtype('i2')) if __name__ == '__main__':