Esempio n. 1
0
 def test_nanmean(self):
     arr = np.random.rand(10,10,10)
     dat = AttrArray(arr,name='randvals')
     # if there are no NaN's, mean and nanmean should give equal
     # results:
     self.assertEquals(dat.mean(),dat.nanmean())
     assert_array_almost_equal(dat.mean(0),dat.nanmean(0))
     self.assertEquals(dat.nanmean(0).name, 'randvals')
     assert_array_almost_equal(dat.mean(1),dat.nanmean(1))
     self.assertEquals(dat.nanmean(1).name, 'randvals')
     assert_array_almost_equal(dat.mean(2),dat.nanmean(2))
     self.assertEquals(dat.nanmean(2).name, 'randvals')
     # Now, make sure results are as expected with NaN present:
     arr[0,0,0] = np.nan
     dat = AttrArray(arr,name='randvals')
     self.assertEquals(dat[~np.isnan(dat)].mean(),dat.nanmean())
     for i in range(len(arr.shape)):
         tmp1 = dat.mean(i)
         tmp1[0,0] = 0
         tmp2 = dat.nanmean(i)
         tmp2[0,0] = 0
         assert_array_almost_equal(tmp1,tmp2)
         self.assertEquals(tmp2.name, 'randvals')
     arr[3,6,2] = np.nan
     dat = AttrArray(arr,name='randvals')
     self.assertEquals(dat[~np.isnan(dat)].mean(),dat.nanmean())
     tmp1 = dat.mean(0)
     tmp1[0,0] = 0
     tmp1[6,2] = 0
     tmp2 = dat.nanmean(0)
     tmp2[0,0] = 0
     tmp2[6,2] = 0
     assert_array_almost_equal(tmp1,tmp2)
     self.assertEquals(tmp2.name, 'randvals')
     tmp1 = dat.mean(1)
     tmp1[0,0] = 0
     tmp1[3,2] = 0
     tmp2 = dat.nanmean(1)
     tmp2[0,0] = 0
     tmp2[3,2] = 0
     assert_array_almost_equal(tmp1,tmp2)
     self.assertEquals(tmp2.name, 'randvals')
     tmp1 = dat.mean(2)
     tmp1[0,0] = 0
     tmp1[3,6] = 0
     tmp2 = dat.nanmean(2)
     tmp2[0,0] = 0
     tmp2[3,6] = 0
     assert_array_almost_equal(tmp1,tmp2)
     self.assertEquals(tmp2.name, 'randvals')
Esempio n. 2
0
 def test_nanmean(self):
     arr = np.random.rand(10, 10, 10)
     dat = AttrArray(arr, name='randvals')
     # if there are no NaN's, mean and nanmean should give equal
     # results:
     self.assertEquals(dat.mean(), dat.nanmean())
     assert_array_almost_equal(dat.mean(0), dat.nanmean(0))
     self.assertEquals(dat.nanmean(0).name, 'randvals')
     assert_array_almost_equal(dat.mean(1), dat.nanmean(1))
     self.assertEquals(dat.nanmean(1).name, 'randvals')
     assert_array_almost_equal(dat.mean(2), dat.nanmean(2))
     self.assertEquals(dat.nanmean(2).name, 'randvals')
     # Now, make sure results are as expected with NaN present:
     arr[0, 0, 0] = np.nan
     dat = AttrArray(arr, name='randvals')
     self.assertEquals(dat[~np.isnan(dat)].mean(), dat.nanmean())
     for i in range(len(arr.shape)):
         tmp1 = dat.mean(i)
         tmp1[0, 0] = 0
         tmp2 = dat.nanmean(i)
         tmp2[0, 0] = 0
         assert_array_almost_equal(tmp1, tmp2)
         self.assertEquals(tmp2.name, 'randvals')
     arr[3, 6, 2] = np.nan
     dat = AttrArray(arr, name='randvals')
     self.assertEquals(dat[~np.isnan(dat)].mean(), dat.nanmean())
     tmp1 = dat.mean(0)
     tmp1[0, 0] = 0
     tmp1[6, 2] = 0
     tmp2 = dat.nanmean(0)
     tmp2[0, 0] = 0
     tmp2[6, 2] = 0
     assert_array_almost_equal(tmp1, tmp2)
     self.assertEquals(tmp2.name, 'randvals')
     tmp1 = dat.mean(1)
     tmp1[0, 0] = 0
     tmp1[3, 2] = 0
     tmp2 = dat.nanmean(1)
     tmp2[0, 0] = 0
     tmp2[3, 2] = 0
     assert_array_almost_equal(tmp1, tmp2)
     self.assertEquals(tmp2.name, 'randvals')
     tmp1 = dat.mean(2)
     tmp1[0, 0] = 0
     tmp1[3, 6] = 0
     tmp2 = dat.nanmean(2)
     tmp2[0, 0] = 0
     tmp2[3, 6] = 0
     assert_array_almost_equal(tmp1, tmp2)
     self.assertEquals(tmp2.name, 'randvals')