NumPy教程-numpy.meshgrid()在Python中的使用
整理:
python架构师
Python的numpy模块提供了meshgrid()函数,用于根据给定的表示矩阵索引或笛卡尔索引的一维数组创建一个矩形网格。MATLAB在一定程度上启发了meshgrid()函数。通过坐标向量,meshgrid()函数返回坐标矩阵。
indexing: {'xy', 'ij'}(可选) 这是一个可选的参数,定义了输出的笛卡尔'xy'(默认)或矩阵('ij')索引。
sparse: bool(可选) 这个参数也是可选的。如果我们需要一个稀疏网格以节省内存,就需要将这个参数设置为True。默认情况下,它设置为False。
copy: bool(可选) 这个可选参数的目的是返回原始数组的副本,以节省内存。默认情况下,它设置为False。
如果 sparse 和 copy 参数都设置为False,那么它将返回非连续的数组。此外,广播数组的多个元素可能会引用单个内存位置。如果我们需要写入数组,则必须首先进行复制。
1
Python的numpy模块提供了meshgrid()函数,用于根据给定的表示矩阵索引或笛卡尔索引的一维数组创建一个矩形网格。MATLAB在一定程度上启发了meshgrid()函数。通过坐标向量,meshgrid()函数返回坐标矩阵。
语法
numpy.meshgrid(*xi, **kwargs)
参数
x1, x2,…, xn : array_like 这个参数定义了一个一维数组,表示网格的坐标。indexing: {'xy', 'ij'}(可选) 这是一个可选的参数,定义了输出的笛卡尔'xy'(默认)或矩阵('ij')索引。
sparse: bool(可选) 这个参数也是可选的。如果我们需要一个稀疏网格以节省内存,就需要将这个参数设置为True。默认情况下,它设置为False。
copy: bool(可选) 这个可选参数的目的是返回原始数组的副本,以节省内存。默认情况下,它设置为False。
如果 sparse 和 copy 参数都设置为False,那么它将返回非连续的数组。此外,广播数组的多个元素可能会引用单个内存位置。如果我们需要写入数组,则必须首先进行复制。
👉点击领取:最全Python资料合集
返回值
X1, X2, …, Xn 从坐标向量返回的坐标长度。示例 1:
输出:import numpy as npna, nb = (5, 3)a = np.linspace(1, 2, na)b = np.linspace(1, 2, nb)xa, xb = np.meshgrid(a, b)xaxb
在上面的代码中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. ]])
- 我们使用别名np导入了numpy模块。
- 我们创建了两个变量,na和nb,并分别赋值为5和3。
- 我们使用linspace()函数创建了两个数组,a和b。
- 然后,我们声明了变量'xa'和'xb',并将meshgrid()的返回值赋给它们。
- 我们在函数中传递了数组'a'和'b'。
- 最后,我们尝试打印变量'xa'和'xb'。
示例 2:
输出:import numpy as npna, nb = (5, 3)a = np.linspace(1, 2, na)b = np.linspace(1, 2, nb)xa, xb = np.meshgrid(a, b, sparse=True)xaxb
array([[1. , 1.25, 1.5 , 1.75, 2. ]])array([[1. ],[1.5],[2. ]])
示例 3:
输出:import numpy as npimport matplotlib.pyplot as plta = 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()
示例 4:
输出:import numpy as npimport matplotlib.pyplot as plta = 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 npimport matplotlib.pyplot as plta = 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()
![]()
热门推荐