0

所以这是我尝试做的,

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 数组)。

感谢您的任何建议:)

干杯

4

2 回答 2

3

利用广播

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
于 2012-12-11T08:09:21.340 回答
0

您可以执行以下操作:

grid = np.mgrid[:N, :N, :1]
grid = grid.T.reshape(-1, 3)
于 2012-12-12T04:05:55.773 回答