Understanding my CPU's L3 cache using numpy vectorized operations