コード例 #1
0
    def test_keysort(self):
        N = 1000
        rnd = numpy.random.randint(N, size=N)
        for dtype1 in ('S6', 'b1', 'i1', 'i8', 'u4', 'u8', 'f4', 'f8'):
            for dtype2 in ('u4', 'i8'):
                a = numpy.array(rnd, dtype1)
                b = numpy.array(rnd, dtype2)

                c = a.copy()
                d = c.argsort()
                e = c[d]
                f = b[d]

                indexesextension.keysort(a, b)
                self.assertTrue((a == e).all())
                self.assertTrue((b == f).all())
コード例 #2
0
ファイル: test_aux.py プロジェクト: ESSS/PyTables
    def test_keysort(self):
        N = 1000
        rnd = numpy.random.randint(N, size=N)
        for dtype1 in ('S6', 'b1', 'i1', 'i8', 'u4', 'u8', 'f4', 'f8'):
            for dtype2 in ('u4', 'i8'):
                a = numpy.array(rnd, dtype1)
                b = numpy.array(rnd, dtype2)

                c = a.copy()
                d = c.argsort()
                e = c[d]
                f = b[d]

                indexesextension.keysort(a, b)
                self.assertTrue((a == e).all())
                self.assertTrue((b == f).all())
コード例 #3
0
ファイル: keysort.py プロジェクト: crackerboy/PyTables
import numpy
from time import perf_counter as clock

N = 1000 * 1000
rnd = numpy.random.randint(N, size=N)

for dtype1 in ('S6', 'b1', 'i1', 'i2', 'i4', 'i8', 'u1', 'u2', 'u4', 'u8',
               'f4', 'f8'):
    for dtype2 in ('u4', 'i8'):
        print("dtype array1, array2-->", dtype1, dtype2)
        a = numpy.array(rnd, dtype1)
        b = numpy.arange(N, dtype=dtype2)
        c = a.copy()

        t1 = clock()
        d = c.argsort()
        # c.sort()
        # e=c
        e = c[d]
        f = b[d]
        tref = clock() - t1
        print("normal sort time-->", tref)

        t1 = clock()
        keysort(a, b)
        tks = clock() - t1
        print("keysort time-->", tks, "    {:.2f}x".format(tref / tks))
        assert numpy.alltrue(a == e)
        #assert numpy.alltrue(b == d)
        assert numpy.alltrue(f == d)
コード例 #4
0
ファイル: keysort.py プロジェクト: B-Rich/PyTables
from time import time

N = 1000 * 1000
rnd = numpy.random.randint(N, size=N)

for dtype1 in ('S6', 'b1',
               'i1', 'i2', 'i4', 'i8',
               'u1', 'u2', 'u4', 'u8', 'f4', 'f8'):
    for dtype2 in ('u4', 'i8'):
        print("dtype array1, array2-->", dtype1, dtype2)
        a = numpy.array(rnd, dtype1)
        b = numpy.arange(N, dtype=dtype2)
        c = a.copy()

        t1 = time()
        d = c.argsort()
        # c.sort()
        # e=c
        e = c[d]
        f = b[d]
        tref = time() - t1
        print("normal sort time-->", tref)

        t1 = time()
        keysort(a, b)
        tks = time() - t1
        print("keysort time-->", tks, "    %.2fx" % (tref / tks,))
        assert numpy.alltrue(a == e)
        #assert numpy.alltrue(b == d)
        assert numpy.alltrue(f == d)