2012-12-11 22 views
0

所以这是我尝试做,与NumPy的性能。创建网格

N=1000 
x=np.arange(0,1,1./float(len(N)))  
XX,YY=np.meshgrid(x,x) 

l=len(XX) 
grid=np.array([ ([XX[i,i],YY[j,j],0. ]) for i in xrange(l) for j in xrange(l) ]) 

的numpy的程序是相当快的,但我需要的电网在以不同的形式,这需要相当长的(我猜是因为索引numpy数组)。

感谢您的任何建议:)

干杯

+0

LEN(N)不顺便工作 – Anake

回答

3

broadcasting

z = np.zeros([N, N, 3]) 
z[:,:,0] = x.reshape(-1,1) 
z[:,:,1] = x 
fast_grid = z.reshape(N*N, 3) 

print np.all(grid == fast_grid) 
True 
0

你可以这样做:

grid = np.mgrid[:N, :N, :1] 
grid = grid.T.reshape(-1, 3)