numpy meshgrid和reval用法

2023-11-26 15:05:09 浏览数 (1)

numpy中有一些强大的函数可以很方便的实现日常的数值处理计算。在机器学习的特征处理中,meshgrid使用的很多,我之前对于meshgrid的用法一直是有点茫然记不住,后来看到一个stackoverflow的帖子恍然大悟,所以记录分享一下,

numpy.meshgrid()numpy.ravel() 是 NumPy 库中常用的函数,用于处理多维数组的操作。

numpy.meshgrid()

  • 函数签名:numpy.meshgrid(*xi, indexing='xy', sparse=False, copy=True)
  • numpy.meshgrid() 用于生成坐标矩阵或坐标网格,它接受一组一维数组作为输入,返回一个二维数组或多个二维数组,用于表示输入数组的所有可能的坐标对组合。
  • 参数:
代码语言:txt复制
    -   `*xi`:一组一维数组,表示坐标轴的取值范围。
    -   `indexing`:可选参数,确定返回的坐标矩阵的索引顺序。默认值为 `'xy'`,表示以笛卡尔坐标顺序返回。
    -   `sparse`:可选参数,确定返回的坐标矩阵是否为稀疏矩阵。默认值为 `False`,返回密集矩阵。
    -   `copy`:可选参数,确定是否复制输入数组。默认值为 `True`,表示复制输入数组。
  • 返回值:
代码语言:txt复制
    -   单个二维数组或多个二维数组,表示输入数组的所有可能的坐标对组合。

numpy.ravel()

  • 函数签名:numpy.ravel(a, order='C')
  • numpy.ravel() 用于将多维数组展平为一维数组。它接受一个多维数组作为输入,返回一个展平后的一维数组。
  • 参数:
代码语言:txt复制
    -   `a`:多维数组。
    -   `order`:可选参数,确定展平数组的顺序。默认值为 `'C'`,表示按行展平(C 风格)。
  • 返回值:
代码语言:txt复制
    -   一维数组,表示展平后的数组。

meshgrid主要是用来很方便的生成坐标对,坐标由给定的x, y两个数组来提供

将x和y分别在另一个数组的维度方向上进行扩展,然后就生成了坐标pair,返回的结果就是坐标的x集合和y集合。

代码语言:txt复制
nx, ny = (3, 2)
>>> x = np.linspace(0, 1, nx) # x = array([0, 0.5, 1])
>>> y = np.linspace(0, 1, ny) # y = array([0, 1])
>>> xv, yv = np.meshgrid(x, y)
>>> xv
array([[ 0. ,  0.5,  1. ],
       [ 0. ,  0.5,  1. ]])
>>> yv
array([[ 0.,  0.,  0.],
       [ 1.,  1.,  1.]])

一个与meshgrid经常一起用的函数是reval,通常用于将meshgrid返回的的坐标集合矩阵拉伸,用于后续处理

代码语言:txt复制
x = np.array([[1, 2, 3], [4, 5, 6]])
>>> print(np.ravel(x))
[1 2 3 4 5 6]

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞