6

2D グリッドに投影した粒子の立方体があり、セル内の雲によって粒子をグリッドに投影し、スカラーで重み付けします。

次に、すべてのグリッド ポイントでのスカラーの勾配が必要です。2D ではこれを使用してnp.gradientおり、x 方向と y 方向の勾配を持つ 2 つの配列を取得します。

gradx, grady = np.gradient(grid)

これを3次元に一般化する方法を知っている人はいますか? 3D のセルの雲は問題ありませんが、形状 (700、700、700) のグリッドが残ります。

私が見る限り、これにnp.gradient対処することはできませんか?

ありがとう、ダニエル

4

1 に答える 1

4

Numpyのドキュメントは、それgradientがどの次元でも機能することを示しています:

numpy.gradient(f, *varargs)

N 次元配列の勾配を返します。

勾配は、内部の中央差分と境界での最初の差分を使用して計算されます。したがって、返される勾配は入力配列と同じ形状になります。

パラメーター :

f: array_like.スカラー関数のサンプルを含む N 次元配列。

*varargs:各方向のサンプル距離を指定する 0、1、または N スカラー。つまり、dx、dy、dz、... デフォルトの距離は 1 です。

戻り値 :

g: ndarray. 各次元に関する f の導関数を与える f と同じ形状の N 個の配列。

期待どおりに、2 次元コードを 3D に拡張できるはずです。

于 2012-10-30T14:49:36.887 に答える