私は四面体上に一連の格子点を生成する以下の関数を持っています。NumPyにループ依存のループをネストするために
def tet_grid(n):
xv = np.array([
[-1.,-1.,-1.],
[ 1.,-1.,-1.],
[-1., 1.,-1.],
[-1.,-1., 1.],
])
nsize = int((n+1)*(n+2)*(n+3)/6);
xg = np.zeros((nsize,3))
p = 0
for i in range (0, n + 1):
for j in range (0, n + 1 - i):
for k in range (0, n + 1 - i - j):
l = n - i - j - k
xg[p,0]=(i * xv[0,0] + j * xv[1,0] + k * xv[2,0] + l * xv[3,0])/n
xg[p,1]=(i * xv[0,1] + j * xv[1,1] + k * xv[2,1] + l * xv[3,1])/n
xg[p,2]=(i * xv[0,2] + j * xv[1,2] + k * xv[2,2] + l * xv[3,2])/n
p = p + 1
return xg
これをNumPyで簡単にベクトル化する方法はありますか?
これらの依存するものはベクトル化するのが楽しいです! – Divakar
@Divakar確かに!私はまだ必要なメモリの5/6を無駄にしないあなたの魔法の解決策を待っています:) –
あなたはすでに私がやろうとしているようです。メモリを最適化したより良いハードウェアを待つだけです。 – Divakar