Python の numpy モジュールが提供するもの メッシュグリッド() を表す指定された 1 次元配列を使用して長方形グリッドを作成する関数。 マトリックスのインデックス付け または デカルトインデックス付け 。 MATLAB は、meshgrid() 関数に多少影響を与えています。 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 をエイリアス名 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()
出力:
例 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()
出力: