iter.py 661 B

123456789101112131415161718192021222324252627282930
  1. # Benchmark to compare times for iterators in generator contexts by
  2. # using carrays vs plain numpy arrays.
  3. from time import time
  4. import numpy as np
  5. import bcolz
  6. N = int(1e6)
  7. bcolz.defaults.cparams['cname'] = 'blosclz'
  8. bcolz.defaults.cparams['clevel'] = 9
  9. a = np.arange(N)
  10. b = bcolz.carray(a)
  11. t0 = time()
  12. # sum1 = sum(a)
  13. sum1 = sum((v for v in a[2::3] if v < 10))
  14. t1 = time() - t0
  15. print("Summing using numpy iterator: %.3f" % t1)
  16. t0 = time()
  17. #sum2 = sum(b)
  18. sum2 = sum((v for v in b.iter(2, None, 3) if v < 10))
  19. t2 = time() - t0
  20. print("Summing using carray iterator: %.3f speedup: %.2f" % (t2, t1 / t2))
  21. assert sum1 == sum2, "Summations are not equal!"