You can try this to draw the lines between the different points.
The difficulty is to select in your array the points that match together.
import numpy as np
n = 30
array = flatten([[a*vector([float(sqrt(3))/2,0.5]) + b*vector([float(sqrt(3))/2,-0.5]) for a in (0..n)] for b in (0..n)] + [[a*vector([float(sqrt(3))/2,0.5]) + b*vector([float(sqrt(3))/2,-0.5]) + vector([-1/float(sqrt(2)),0]) for a in (0..n)] for b in (0..n)])
arrayP = np.asarray(array)
g = Graphics()
i = 0
while i < n**2:
pointO = arrayP[i]
pointA = arrayP[i + (n+1)**2]
pointB = arrayP[i + (n+1)**2 +1]
pointC = arrayP[i + (n+1)**2 + n+1]
line1 = line([pointO,pointA],aspect_ratio=1)
line2 = line([pointO,pointB],aspect_ratio=1)
line3 = line([pointO,pointC],aspect_ratio=1)
if i%(n+1) == n: #to avoid long return lines between points
g += line1 + line3
else:
g += line1 + line2 +line3
i +=1
g