python numpy.meshgrid()函数的用法

numpy.meshgrid(*xi,**kwargs)

从一个坐标向量中返回坐标矩阵。

参数:x1,x2,...,xn:array_like
 表示网格坐标的一维数组。
 indexing:{'xy','ij'},可选
 笛卡尔('xy',默认值)或矩阵('ij')输出索引。
 sparse:布尔,可选
 如果为True,则返回稀疏网格以节省内存。默认值为False。
 

copy:布尔,可选

 如果为False,则返回原始数组的视图以节省内存。默认为True。请注意, 可能会返回非连续数组。此外,广播阵列的多于一个元素可以指代单个存储器位置。如果需要写入数组,请先进行复制。sparse=False, copy=False
返回值:x1,x2,...,xn:ndarray
 对于长度为Ni = len(xi)输入数组x1,x2,...,xn,当参数indexing为'ij'时,返回(N1,N2,N3 ,... Nn)形阵列;当参数indexing为'xy',返回(N2, N1, N3,...Nn)形矩阵。用xi的元素重复填充矩阵沿x1的第一维,第二个为x2等。

 

Examples:

nx, ny = (3, 2)

x = np.linspace(0, 1, nx)

x
Out[1]: array([ 0. ,  0.5,  1. ])

y = np.linspace(0, 1, ny)

y
Out[2]: array([ 0.,  1.])

xv, yv = np.meshgrid(x, y)

xv
Out[3]: 
array([[ 0. ,  0.5,  1. ],
       [ 0. ,  0.5,  1. ]])

yv
Out[4]: 
array([[ 0.,  0.,  0.],
       [ 1.,  1.,  1.]])

meshgrid函数实际上是将两个输入的数组x和y进行了扩展。

由上面的示例可以看出,meshgrid函数是根据传入的两个一维数组参数生成两个数组元素的列表,第一个参数是x,x的维度为3,第二个参数是y,y的维度为2,

生成的第一个二维数组xv是以x为行,以y的纬度为行数的向量,

生成的第二个二维数组yv是以y的转置为列,以x的纬度为列数的向量。

xv, yv = np.meshgrid(x, y, sparse=True)   # make sparse output arrays

xv
Out[5]: array([[ 0. ,  0.5,  1. ]])

yv
Out[6]: 
array([[ 0.],
       [ 1.]])

添加参数sparse = True,就不会向上面一样进行扩展了,它产生的网格坐标不是所有的网格坐标,而是网格对角线上的坐标点。

 

 

 

 

numpy.meshgrid官方文档

 

 

 

 

 

 

 

 

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`np.meshgrid` 函数一个非常有用的函数,它可以用于生成一个多维网格,以便对多维函数进行矢量化评估。该函数的基本语法如下: ```python X, Y, ... = np.meshgrid(x, y, ...) ``` 其,`x`、`y` 等参数是一维数组,表示每个维度上的坐标。`X`、`Y` 等返回则是多维数组,表示生成的网格。例如,如果 `x` 和 `y` 分别是长度为 `m` 和 `n` 的一维数组,则 `X` 和 `Y` 的形状分别为 `(n, m)` 和 `(n, m)`。 下面是一个简单的示例,演示了如何使用 `np.meshgrid` 函数生成一个二维网格,并计算每个网格点的距离: ```python import numpy as np # 生成一维坐标数组 x = np.linspace(-1, 1, 5) y = np.linspace(-1, 1, 5) # 生成二维网格 X, Y = np.meshgrid(x, y) # 计算每个网格点的距离 D = np.sqrt(X**2 + Y**2) # 输出结果 print("X =\n", X) print("Y =\n", Y) print("D =\n", D) ``` 输出结果如下: ``` X = [[-1. -0.5 0. 0.5 1. ] [-1. -0.5 0. 0.5 1. ] [-1. -0.5 0. 0.5 1. ] [-1. -0.5 0. 0.5 1. ] [-1. -0.5 0. 0.5 1. ]] Y = [[-1. -1. -1. -1. -1.] [-0.5 -0.5 -0.5 -0.5 -0.5] [ 0. 0. 0. 0. 0. ] [ 0.5 0.5 0.5 0.5 0.5] [ 1. 1. 1. 1. 1. ]] D = [[1.41421356 1.11803399 1. 1.11803399 1.41421356] [1.11803399 0.70710678 0.5 0.70710678 1.11803399] [1. 0.5 0. 0.5 1. ] [1.11803399 0.70710678 0.5 0.70710678 1.11803399] [1.41421356 1.11803399 1. 1.11803399 1.41421356]] ``` 上述示例,我们首先生成了两个一维坐标数组 `x` 和 `y`,然后使用 `np.meshgrid` 函数生成了一个二维网格 `X` 和 `Y`。最后,我们计算了每个网格点的距离,并将结果保存在数组 `D`

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值