Time of execution:
import time import numpy as np def build_up(): outbox = [0, 0, 64, 65] d = outbox[3] << 24 | outbox[2] << 16 | outbox[1] << 8 | outbox[0] member = float(d) print(f'Float output = {member}') return member def build_up1(): member = float(sum([i << s for i, s in zip([0, 0, 64, 65], [0, 8, 16, 24])])) print(member) def build_up2(): array = np.array((0, 0, 64, 65), np.int32) << np.array((0, 8, 16, 24), np.int32) d = np.sum(array) member = np.array((d, 0)) member.dtype = np.float32 print(member[0]) def main(): t0 = time.clock() build_up() t1 = time.clock() print(f'time build_up: {t1-t0}') t0 = time.clock() build_up1() t1 = time.clock() print(f'time build_up1: {t1-t0}') t0 = time.clock() build_up2() t1 = time.clock() print(f'time build_up2: {t1-t0}') if __name__ == '__main__': main()
Output:Float output = 1094713344.0
time build_up: 1.8943810864992326e-05
1094713344.0
time build_up1: 6.911930991280987e-06
12.0
time build_up2: 6.348736614213645e-05
Build_up1 wins