Exemple #1
0
    def testCombineAverage(self):
        '''Average combine: combination of integer arrays.'''

        # Inputs
        input1 = numpy.array([[1, 2, 3, 4], [1, 2, 3, 4], [9, 2, 0, 4]])
        input2 = numpy.array([[3, 2, 8, 4], [6, 2, 0, 4], [1, 3, 3, 4]])
        input3 = numpy.array([[7, 2, 1, 4], [1, 2, 0, 4], [44, 2, 2, 0]])
        inputs = [input1, input2, input3]

        # Results
        rres = numpy.array([[3.66666667, 2., 4., 4.0],
                            [2.6666666666666665, 2., 1., 4.],
                            [18., 2.33333333, 1.666666667, 2.66666667]])
        rvar = 3 * numpy.array([[9.3333333333333339, 0., 13.0, 0.],
                                [8.3333333333333339, 0., 3.00000000, 0.],
                                [523.0, 0.33333333333333337, 2.333333333333333,
                                 5.3333333333333339]]) / len(inputs)
        rnum = numpy.array([[3, 3, 3, 3], [3, 3, 3, 3], [3, 3, 3, 3]])

        out = mean(inputs)
        # Checking
        for cal, precal in zip(out[0].flat, rres.flat):
            self.assertAlmostEqual(cal, precal)
        for cal, precal in zip(out[1].flat, rvar.flat):
            self.assertAlmostEqual(cal, precal)
        for cal, precal in zip(out[2].flat, rnum.flat):
            self.assertEqual(cal, precal)
Exemple #2
0
    def testCombineMaskAverage(self):
        '''Average combine: combination of integer arrays with masks.'''
        input1 = numpy.array([[1, 2, 3, 4], [1, 2, 3, 4], [9, 2, 0, 4]])
        input2 = numpy.array([[3, 2, 8, 4], [6, 2, 0, 4], [1, 3, 3, 4]])
        input3 = numpy.array([[7, 2, 1, 4], [1, 2, 0, 4], [44, 2, 2, 0]])
        inputs = [input1, input2, input3]

        mask1 = numpy.array([[False, False, False, True],
                             [False, True, False, False],
                             [False, True, False, False]])
        mask2 = numpy.array([[False, False, False, False],
                             [False, True, False, False],
                             [False, True, False, False]])
        mask3 = numpy.array([[False, False, False, False],
                             [False, True, False, False],
                             [False, False, True, False]])
        masks = [mask1, mask2, mask3]
        rres = numpy.array([[3.66666667, 2., 4., 4.],
                            [2.6666666666666665, 0., 1., 4.],
                            [18., 2., 1.5, 2.66666667]])
        rvar = numpy.array([[3 * 3.11111111, 0., 3 * 4.33333333, 0.],
                            [3 * 2.77777778, 0., 3 * 1.,  0.],
                            [3 * 174.33333333, 0., 2 * 2.25, 3 * 1.77777778]
                            ])

        rnum = numpy.array([[3, 3, 3, 2],
                            [3, 0, 3, 3],
                            [3, 1, 2, 3]])

        out = mean(inputs, masks)
        for cal, precal in zip(out[0].flat, rres.flat):
            self.assertAlmostEqual(cal, precal)
        for cal, precal in zip(out[1].flat, rvar.flat):
            self.assertAlmostEqual(cal, precal)
        for cal, precal in zip(out[2].flat, rnum.flat):
            self.assertEqual(cal, precal)