small = np.array([80.6, 120.8, -115.6, -76.1, 131.3, 105.1, 138.4, -81.3, 
    -95.3, 89.2, -154.1, 121.4, -85.1, 96.8, 68.2])
med = np.random.randint(-10, 10, size=100000)
big = np.random.randint(-10, 10, size=10000000)
for name, array in [('small', small), ('med', med), ('big', big)]:
    print(('loop ', name, zero_crossings_loop(array)))
print(('Numpy', name, (array[:-1] * array[1:] < 0).sum()))
Different results to counting zero-crossings of a large sequence