Beispiel #1
0
    def test_bootstrap(self):

        # Check specific cases
        a = [1, 2, 3, 4]

        assert_array_close(bootstrap(a, 1), [2])
        assert_array_close(bootstrap(a, 5), [2, 1.75, 2.5, 1.5, 1.75])
        assert_array_close(
            bootstrap(a, 10),
            [2, 2.5, 2.25, 1.5, 3.25, 3.25, 2, 3.25, 1.75, 1.75])

        a = [[1, 2, 3, 4],
            [5, 6, 7, 8],
            [9, 10, 11, 12]]

        assert_array_close(
            bootstrap(a, 5),
            [[2., 1.75,  2.5, 1.5, 1.75],
            [6., 5.75,  6.5, 5.5, 5.75],
            [10., 9.75, 10.5, 9.5, 9.75]])
        assert_array_close(
            bootstrap(a, 5, axis=1),
            [[2., 1.75,  2.5, 1.5, 1.75],
            [6., 5.75,  6.5, 5.5, 5.75],
            [10., 9.75, 10.5, 9.5, 9.75]])
        assert_array_close(
            bootstrap(a, 5, axis=0),
            [[1., 2., 3., 4.],
            [6.33333333, 7.33333333, 8.33333333, 9.33333333],
            [3.66666667, 4.66666667, 5.66666667, 6.66666667],
            [1., 2., 3., 4.],
            [5., 6., 7., 8.]])

        a = [1, 2, 3, 4]

        assert_array_close(
            bootstrap(a, 5, statistic=numpy.std),
            [1.22474487, 1.29903811, 0.5, 0.8660254,  1.29903811])
Beispiel #2
0
    def test_bin_(self):

        n_tests = 100

        for _ in xrange(n_tests):

            x = acpy.random.random(dims=(1, 3), size=(1, 10))
            axis = acpy.random.randint(0, x.ndim)
            binsize = acpy.random.randint(1, x.shape[axis] + 1)

            binned = bin_(x, binsize, axis=axis)

            # Check length of binned axis is correct
            assert binned.shape[axis] == x.shape[axis] // binsize
            # Check mean along binned axis is the same
            assert_array_close(
                numpy.mean(numpy.take(
                    x,
                    range(0, x.shape[axis] - (x.shape[axis] % binsize)),
                    axis=axis
                    ), axis=axis),
                numpy.mean(binned, axis=axis)
                )

        # Check specific cases
        x = [1, 2, 3, 4, 5]
        assert len(x) == 5
        assert_array_close(bin_(x, 1), [1, 2, 3, 4, 5])
        assert_array_close(bin_(x, 1, axis=0), [1, 2, 3, 4, 5])
        assert_array_close(bin_(x, 1, axis=-1), [1, 2, 3, 4, 5])
        assert_array_close(bin_(x, 2), [1.5, 3.5])
        assert_array_close(bin_(x, 3), [2])
        assert_array_close(bin_(x, 4), [2.5])
        assert_array_close(bin_(x, 5), [3])

        x = [[1, 2, 3], [4, 5, 6]]
        assert_array_close(bin_(x, 2), [[1.5], [4.5]])
        assert_array_close(bin_(x, 2, axis=1), [[1.5], [4.5]])
        assert_array_close(bin_(x, 2, axis=-1), [[1.5], [4.5]])
        assert_array_close(bin_(x, 2, axis=0), [[2.5, 3.5, 4.5]])
def assert_array_close_tuple(t1, t2):
    for a, b in zip(t1, t2):
        assert_array_close(a, b)