logo

Python の numpy.meshgrid()

Python の numpy モジュールが提供するもの メッシュグリッド() を表す指定された 1 次元配列を使用して長方形グリッドを作成する関数。 マトリックスのインデックス付け または デカルトインデックス付け 。 MATLAB は、meshgrid() 関数に多少影響を与えています。 Meshgrid() 関数は、座標ベクトルから座標行列を返します。

numpy.meshgrid()

上の図では、x 軸の範囲は -5 ~ 5、y 軸の範囲は -5 ~ 5 です。つまり、図には合計 121 個の点がマークされており、それぞれに x 座標とy 座標。 x 軸に平行な線の場合、マークされた点の x 座標はそれぞれ -5、-4、-3、-2、-1、0、1、2、3、4、および 5 になります。一方、y 軸に平行な線の場合、マークされた点の y 座標は下から上に -5、-4、-3、-2、-1、0、1、2、3 になります。 、4、5とそれぞれなります。

構文

 numpy.meshgrid(*xi, **kwargs) 

パラメーター

x1、x2、…、xn : 配列のような

このパラメータは、グリッドの座標を表す 1 次元配列を定義します。

インデックス付け: {'xy'、'ij'}(オプション)

これは、出力のデカルト 'xy' (デフォルト) または行列 ('ij') インデックスを定義するオプションの引数です。

スパース: bool(オプション)

マーキーHTML

このパラメータもオプションです。メモリを節約するためにスパース グリッドが必要な場合は、このパラメータを True に設定する必要があります。デフォルトでは、False に設定されています。

コピー: bool(オプション)

このオプションの引数の目的は、メモリを節約するために元の配列のコピーを返すことです。デフォルトでは、False に設定されています。

両方の場合 まばらな そして コピー パラメータが False に設定されている場合、不連続な配列が返されます。さらに、ブロードキャスト配列の複数の要素が 1 つのメモリ位置を参照できます。配列に書き込む必要がある場合は、まずコピーを作成する必要があります。

戻り値

X1、X2、...、Xn

この関数からは、座標ベクトルからの座標長が返されます。

例 1:

 import numpy as np na, nb = (5, 3) a = np.linspace(1, 2, na) b = np.linspace(1, 2, nb) xa, xb = np.meshgrid(a, b) xa xb 

出力:

 array([[1. , 1.25, 1.5 , 1.75, 2. ], [1. , 1.25, 1.5 , 1.75, 2. ], [1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. , 1. , 1. , 1. , 1. ], [1.5, 1.5, 1.5, 1.5, 1.5], [2. , 2. , 2. , 2. , 2. ]]) 

上記のコードでは

  • numpy をエイリアス名 np でインポートしました。
  • na と nb という 2 つの変数を作成し、それぞれ値 5 と 3 を割り当てました。
  • linspace() 関数を使用して 2 つの配列、つまり a と b を作成しました。
  • その後、変数「xa」と「xb」を宣言し、戻り値を代入しました。 メッシュグリッド()
  • 関数に配列「a」と「b」の両方を渡しました。
  • 最後に、次の値を出力しようとしました。 「シャー」 そして 「xb」

出力には、座標ベクトルからの座標長を含む 2 つの配列が表示されています。

例 2:

 import numpy as np na, nb = (5, 3) a = np.linspace(1, 2, na) b = np.linspace(1, 2, nb) xa, xb = np.meshgrid(a, b, sparse=True) xa xb 

出力:

 array([[1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. ], [1.5], [2. ]]) 

例 3:

 import numpy as np import matplotlib.pyplot as plt a = np.arange(-10, 10, 0.1) b = np.arange(-10, 10, 0.1) xa, xb = np.meshgrid(a, b, sparse=True) z = np.sin(xa**2 + xb**2) / (xa**2 + xb**2) h = plt.contourf(a,b,z) plt.show() 

出力:

numpy.meshgrid()

上記のコードでは

  • numpy をエイリアス名 np でインポートしました。
  • matplotlib.pyplot を plt としてインポートしました。
  • np.arange() 関数を使用して 2 つの配列、つまり a と b を作成しました。
  • その後、変数「xa」と「xb」を宣言し、戻り値を代入しました。 メッシュグリッド()
  • 関数に配列 'a' と 'b' の両方を渡しました。
  • その後、変数 z を宣言し、np.sine() 関数の戻り値を代入しました。
  • 最後に、を使用して等高線と塗りつぶし等高線を描いてみました。 plt.contourf()

出力では等高線がプロットされています。

json 例内の json

例 4:

 import numpy as np import matplotlib.pyplot as plt a = np.linspace(-5, 5, 5) b = np.linspace(-5, 5, 11) random_data = np.random.random((11, 5)) xa, xb = np.meshgrid(a, b) plt.contourf(xa, xb, random_data, cmap = 'jet') plt.colorbar() plt.show() 

出力:

numpy.meshgrid()

例 5:

 import numpy as np import matplotlib.pyplot as plt a = np.linspace(-5, 5, 5) b = np.linspace(-5, 5, 11) random_data = np.random.random((11, 5)) xa, xb = np.meshgrid(a, b) sine = (np.sin(xa**2 + xb**2))/(xa**2 + xb**2) plt.contourf(xa, xb, sine, cmap = 'jet') plt.colorbar() plt.show() 

出力:

numpy.meshgrid()