In [2]:
from random import random
def random2d(n=1000):
return [[random() for j in range(n)] for i in range(n)]
# now let's do 2d averaging
def average2d(a):
# there's no way to tell how many elements
# there are because each list in the list of lists
# could be a different length
n, s = 0, 0
for row in a:
for element in row:
s += element
n += 1
return s / n
n = 3000
R = random2d(n)
average2d(R)
Out[2]:
In [3]:
%%timeit
# how fast is this?
average2d(R)
In [10]:
import numpy as np
R = np.random.uniform(size=(n,n))
R
Out[10]:
In [11]:
np.mean(R)
Out[11]:
In [12]:
%%timeit
np.mean(R)