numpy.meshgrid(*xi, copy=True, sparse=False, indexing='xy')
return: X1, X2,..., XN

其中 *xi = x1, x2,..., xn 都表示一维 array。

我们从下面这个简单的例子来看 meshgrid 做了什么:

import numpy as npa = np.array([2, 4, 8])
b = np.array([3, 6])x, y = np.meshgrid(a, b)
x
"""
array([[2, 4, 8],[2, 4, 8]])
"""
y
"""
array([[3, 3, 3],[6, 6, 6]])
"""

对于输入的两个一维 array abmeshgrid 返回以 ( a 中的元素, b中的元素) 为坐标点的所有可能组合,但是将两个坐标轴的坐标分开存储。上例中 xy 实际上代表了 6 个坐标点:

(2, 3), (4, 3), (8, 3), (2, 6), (4, 6), (8, 6)

返回值也可以这样理解:

  • x 相当于把 a 重复了 len(b) 次;
  • y 相当于 b 中的每个元素重复了 len(a) 次;
  • 最终形状都为 (len(b), len(a))

我们将 `meshgrid` 生成的坐标点在网格上画出来,就是下面这样:

plt.plot(x, y, 'rs ')
plt.grid(True)
plt.show()


xy 其实就是描述这个网格上点的坐标矩阵

X=[248248]\boldsymbol{X}=\begin{bmatrix} 2&4&8\\ 2&4&8 \end{bmatrix} X=[22​44​88​]

Y=[333666]\boldsymbol{Y}=\begin{bmatrix} 3&3&3\\ 6&6&6 \end{bmatrix} Y=[36​36​36​]


meshgrid 对于计算 grid 上的函数非常有用,例如,如果我们想要估计下面的函数在一个 grid 上一系列点的值

x2+y2\sqrt{ x^2 + y^2} x2+y2​

points = np.arange(-5, 5, 0.01) # 1000 equally spaced pointsxs, ys = np.meshgrid(points, points)
xs
"""
array([[-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],[-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],[-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],...,[-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],[-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99],[-5.  , -4.99, -4.98, ...,  4.97,  4.98,  4.99]])
"""
ys
"""
array([[-5.  , -5.  , -5.  , ..., -5.  , -5.  , -5.  ],[-4.99, -4.99, -4.99, ..., -4.99, -4.99, -4.99],[-4.98, -4.98, -4.98, ..., -4.98, -4.98, -4.98],...,[ 4.97,  4.97,  4.97, ...,  4.97,  4.97,  4.97],[ 4.98,  4.98,  4.98, ...,  4.98,  4.98,  4.98],[ 4.99,  4.99,  4.99, ...,  4.99,  4.99,  4.99]])
"""
z = np.sqrt(xs ** 2 + ys ** 2)
z.shape
"""
(1000, 1000)
"""

我们可以画出这个图:

import matplotlib.pyplot as pltplt.imshow(z)
plt.colorbar()
plt.title('Image plot of $\sqrt{x^2 + y^2}$ for a grid of values')

numpy.meshgrid 用法说明相关推荐

  1. numpy meshgrid用法

    import numpy as np # 坐标向量 a = np.array([1,2,3]) # 坐标向量 b = np.array([7,8]) # 从坐标向量中返回坐标矩阵 # 返回list,有 ...

  2. numpy.where()用法

    numpy.where() 用法详解 - massquantity - 博客园 numpy.where() 用法详解 - massquantity - 博客园

  3. numpy meshgrid 和 mgrid 的两个简单实例和解析

    numpy.meshgrid 和 numpy.mgrid 用于返回包含坐标向量的坐标矩阵. 当坐标矩阵为二维时, 可用于在图像变形时构建网格. 实例一 from __future__ import p ...

  4. 【Data Mining】机器学习三剑客之Numpy常用用法总结

    点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自AI蜗牛车,禁二次转载 一.前言 玩数据分析.数据挖掘.AI的都知道这个pyt ...

  5. 【Python数据清洗】numpy.take()用法

    numpy.take()用法 学了Python很长时间了但是一直没有去研究take的使用方法 今天周末加班研究一下 写一个简单的笔记,基本上都是借鉴别人的 其旨在根据提供的索引值将元素形成数组输出,如 ...

  6. 关于numpy.take()用法

    关于numpy.take()用法 此文章是对我当时使用错误后的改正,用以记录下来,并作分享. 首先用numpy定义一个二维数组 import numpy as np a = np.random.uni ...

  7. numpy.meshgrid()理解

    一句话解释numpy.meshgrid()--生成网格点坐标矩阵. 关键词:网格点,坐标矩阵 网格点是什么?坐标矩阵又是什么鬼? 看个图就明白了: 图中,每个交叉点都是网格点,描述这些网格点的坐标的矩 ...

  8. python numpy allclose用法及代码示例

    python numpy allclose用法及代码示例 用法: numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False) 如果两个数 ...

  9. 快速掌握numpy.hanning、numpy.outer、numpy.meshgrid函数

    文章目录 numpy.hanning numpy.outer numpy.meshgrid numpy.hanning 这是numpy库中比较常见的函数,它生成余弦窗函数或者高斯函数,用于过滤或者突出 ...

最新文章

  1. Retrofit 2.0:有史以来最大的改进
  2. boost::math::negative_binomial用法的测试程序
  3. 转 安装php时报gd相关的错误(gd_ctx.c)
  4. 循环所有数据库执行脚本
  5. 【python】数据结构和算法 + 浅谈单链表与双链表的区别
  6. 2017.9.30 物流运输 思考记录
  7. 甲骨文通知用户需付费取得 Java 8 更新
  8. Python 笔记(一)字典与json使用及注意点
  9. linux mysql外网连接不成功的可能原因
  10. python 等号 什么编码_Python运算符与编码
  11. excel如何随机抽样
  12. javaweb_表单设计
  13. python的os库——批量修改文件名称
  14. Django @csrf_exempt不能在类视图中工作(Django @csrf_exempt not working in class View)
  15. dvm 与jvm 区别
  16. 《最优化方法及其Matlab程序设计》马昌凤 部分习题答案
  17. javascript中mouseover和mouseout事件详解
  18. 打开win10应用商店,提示管理员已阻止这个应用
  19. 5 款让开发效率倍增的 VS Code 插件
  20. 简单的led驱动 了解下

热门文章

  1. 机械硬盘拆卸图文教程
  2. tcpdump与Wireshark抓包分析
  3. 微信小程序分享接口卡片图片尺寸比例
  4. Windows扫雷的设计思路与实现
  5. windows扫雷注入(1s完成扫雷)
  6. 数学通道的应用(四)-发动机转速曲线
  7. 百度2019校招计算机视觉方向笔试题
  8. 2.2 多项式乘法与加法运算(线性结构,C)
  9. js 中数字小数点末尾的0显示与否
  10. 禁用ubuntu 摄像头_如何禁用您的网络摄像头(以及为什么要这么做)