NumPy numpy.meshgrid 関数

Suraj Joshi 2023年1月30日
  1. numpy.meshgrid() の構文
  2. コード例:meshgrids を生成する numpy.meshgrid() メソッド
  3. コード例:numpy.meshgrid()indexing='ij' を設定する meshgrids を生成するメソッド
  4. コード例:numpy.meshgrid() メソッドで sparse=True を設定する meshgrid を生成する方法
NumPy numpy.meshgrid 関数

Python Numpy numpy.meshgrid() 関数は 1 次元座標配列 x1, x2,..., xn から N 次元の矩形グリッドを生成します。

numpy.meshgrid() の構文

numpy.meshgrid(*xi, **kwargs)

パラメータ

x1, x2,..., xn 配列のようなもの。グリッドの座標を表す 1 次元配列。
indexing 配列のようなもの。出力のインデックスを定義します。xy (デカルト) または ij (行列)。
sparse 論理値。メモリを節約するために疎なグリッドを返します(sparse=True)
copy 論理値。ビューを元の配列に変換した場合は、メモリを節約するために返されます(copy=True)。

リターン

座標ベクトルからの座標行列。

コード例:meshgrids を生成する numpy.meshgrid() メソッド

import numpy as np

x=np.linspace(2,5,4)
y=np.linspace(2,4,3)

xx,yy=np.meshgrid(x, y)

print("xx matrix:")
print(xx)
print("\n")

print("shape of xx matrix:")
print(xx.shape)
print("\n")

print("yy matrix:")
print(yy)
print("\n")

print("shape of yy matrix:")
print(yy.shape)
print("\n")

出力:

xx matrix:
[[2. 3. 4. 5.]
 [2. 3. 4. 5.]
 [2. 3. 4. 5.]]


shape of xx matrix:
(3, 4)


yy matrix:
[[2. 2. 2. 2.]
 [3. 3. 3. 3.]
 [4. 4. 4. 4.]]


shape of yy matrix:
(3, 4)

各行列の対応する要素をペアにすると、グリッド上のすべての点の xy の座標が得られるような行列 xxyy を作成します。

コード例:numpy.meshgrid()indexing='ij' を設定する meshgrids を生成するメソッド

import numpy as np

x=np.linspace(2,5,4)
y=np.linspace(2,4,3)

xx,yy=np.meshgrid(x,y,indexing='ij')

print("xx matrix:")
print(xx)
print("\n")

print("shape of xx matrix:")
print(xx.shape)
print("\n")

print("yy matrix:")
print(yy)
print("\n")

print("shape of yy matrix:")
print(yy.shape)
print("\n")

出力:

xx matrix:
[[2. 2. 2.]
 [3. 3. 3.]
 [4. 4. 4.]
 [5. 5. 5.]]


shape of xx matrix:
(4, 3)


yy matrix:
[[2. 3. 4.]
 [2. 3. 4.]
 [2. 3. 4.]
 [2. 3. 4.]]


shape of yy matrix:
(4, 3)

行列の要素のインデックスから、そのペアが両要素の対応する要素を形成するような行列 xxyy を作成します。

行列 xxyy は、先ほどのケースでは xxyy の転置です。

コード例:numpy.meshgrid() メソッドで sparse=True を設定する meshgrid を生成する方法

import numpy as np

x=np.linspace(2,5,4)
y=np.linspace(2,4,3)

xx,yy=np.meshgrid(x,y,sparse=True)

print("xx matrix:")
print(xx)
print("\n")

print("shape of xx matrix:")
print(xx.shape)
print("\n")

print("yy matrix:")
print(yy)
print("\n")

print("shape of yy matrix:")
print(yy.shape)
print("\n")

出力:

xx matrix:
[[2. 3. 4. 5.]]


shape of xx matrix:
(1, 4)


yy matrix:
[[2.]
 [3.]
 [4.]]


shape of yy matrix:
(3, 1)

meshgrid() メソッドで sparse=True を指定すると、メモリを節約するためにスパースグリッドを返します。

著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn