numpy模块中的meshgrid函数用来生成网格矩阵,最简单的网格矩阵为二维矩阵

meshgrid函数可以接受 x1, x2,..., xn 等 n 个一维向量,生成 N-D 矩阵。

1 基本语法

meshgrid(*xi, **kwargs)

参数:

xi - x1, x2,..., xn : array_like

返回值:

X1, X2,..., XN : ndarray

2 示例(二维网格)

2.1 一个参数时

import numpy as np
a = [1,2,3]
b = np.meshgrid(a)
print(b) # [array([1, 2, 3])]

当只有一个参数时,返回值也只有一个 b ,若写两个返回值  b, c = np.meshgrid(a) 则会报错。

2.2 两个参数时

2.2.1 两个参数长度一致时

示例1 

import numpy as np

a = [1,2,3]
b = [9,8,7]

c, d = np.meshgrid(a,b)

print(c)
print('-'*10)
print(d)

运行

[[1 2 3]
[1 2 3]
[1 2 3]]
----------
[[9 9 9]
[8 8 8]
[7 7 7]]

当两个参数长度一致时(如长度为 N ),则生成 N * N 维矩阵

示例2 

交换两参数的顺序

import numpy as np

a = [1,2,3]
b = [9,8,7]

c, d = np.meshgrid(b,a)

print(c)
# [[9 8 7]
#  [9 8 7]
#  [9 8 7]]
print(d)
# [[1 1 1]
#  [2 2 2]
#  [3 3 3]]

交换两个参数顺序后,输出结果发生了变化。

示例3

当返回值值是两个或两个以上参数时,也可用一个参数来接受。

import numpy as np
a = [1,2,3]
b = [9,8,7]
c = np.meshgrid(a,b)
print(c)
# 下面是打印出的结果+
# [array([[1, 2, 3],
#        [1, 2, 3],
#        [1, 2, 3]]), array([[9, 9, 9],
#        [8, 8, 8],
#        [7, 7, 7]])]

2.2.2 两个参数长度不一致时

import numpy as np
a = [1,2,3]
b = [9,8]
c, d = np.meshgrid(a,b)
print(c)
# [[1 2 3]
#  [1 2 3]]
print(d)
# [[9 9 9]
#  [8 8 8]]

这是一个 2 * 3(2 行 3 列)

相当于 b 由 行向量 变成了 列向量

import numpy as np
a = [1,2,3]
b = [9,8]
c, d = np.meshgrid(b, a)
print(c)
# [[9 8]
#  [9 8]
#  [9 8]]
print(d)
# [[1 1]
#  [2 2]
#  [3 3]]

3 示例(三维网格)

import numpy as np

a = [1,2,3]
b = [4,5,6]
c = [7,8,9]

x, y, z = np.meshgrid(a, b, c)

print(x)
# [[[1 1 1]
#   [2 2 2]
#   [3 3 3]]
#
#  [[1 1 1]
#   [2 2 2]
#   [3 3 3]]
#
#  [[1 1 1]
#   [2 2 2]
#   [3 3 3]]]
print(y)
# [[[4 4 4]
#   [4 4 4]
#   [4 4 4]]
#
#  [[5 5 5]
#   [5 5 5]
#   [5 5 5]]
#
#  [[6 6 6]
#   [6 6 6]
#   [6 6 6]]]
print(z)
# [[[7 8 9]
#   [7 8 9]
#   [7 8 9]]
#
#  [[7 8 9]
#   [7 8 9]
#   [7 8 9]]
#
#  [[7 8 9]
#   [7 8 9]
#   [7 8 9]]]

numpy的生成网格矩阵 meshgrid()的更多相关文章

  1. [matlab] 17.网格矩阵

    生成网格矩阵,并且根据条件筛选,重新赋值为0,1二值图像 clear all;close all; %生成二值图 index= randperm(2500,1000); %生成10个不重复随机指标 Z ...

  2. 深度学习实践-物体检测-faster-RCNN(原理和部分代码说明) 1.tf.image.resize_and_crop(根据比例取出特征层,进行维度变化) 2.tf.slice(数据切片) 3.x.argsort()(对数据进行排列,返回索引值) 4.np.empty(生成空矩阵) 5.np.meshgrid(生成二维数据) 6.np.where(符合条件的索引) 7.tf.gather取值

    1. tf.image.resize_and_crop(net, bbox, 256, [14, 14], name)  # 根据bbox的y1,x1,y2,x2获得net中的位置,将其转换为14*1 ...

  3. [转]numpy中的matrix矩阵处理

    今天看文档发现numpy并不推荐使用matrix类型.主要是因为array才是numpy的标准类型,并且基本上各种函数都有队array类型的处理,而matrix只是一部分支持而已. 这个转载还是先放着 ...

  4. numpy中的matrix矩阵处理

    numpy模块中的矩阵对象为numpy.matrix,包括矩阵数据的处理,矩阵的计算,以及基本的统计功能,转置,可逆性等等,包括对复数的处理,均在matrix对象中. class numpy.matr ...

  5. 【348】通过 Numpy 创建各式各样的矩阵

    参考:NumPy之array-一个程序媛的自我修养-51CTO博客 参考:numpy中数组和矩阵的区别 - jiangsujiangjiang的博客 - CSDN博客 一.使用系统方法 二.用指定的数 ...

  6. numpy中生成随机矩阵并打印出矩阵的shape

    from numpy import * c=zeros((4,5)) print c.shape print numpy.random.random((2,3))

  7. numpy模块之创建矩阵、矩阵运算

    本文参考给妹子讲python  https://zhuanlan.zhihu.com/p/34673397 NumPy是Numerical Python的简写,是高性能科学计算和数据分析的基础包,他是 ...

  8. 科学计算库Numpy——数组生成

    等差数组 使用np.arange()或np.linspace()生成元素是等差数列的数组. 以10为底的数组 使用np.logspace()生成元素是以10为底的数组. 数组扩展 使用np.meshg ...

  9. Numpy入门 - 生成数组

    今天是Numpy入门系列教程第一讲,首先是安装Numpy: $ pip install numpy numpy是高性能科学计算和数据分析的基础包,本节主要介绍生成连续二维数组.随机二维数组和自定义二维 ...

随机推荐

  1. mysql中ibdata1过大的问题

    ibdata1文件是什么? 答: ibdata1是一个用来构建innodb系统表空间的文件,这个文件包含了innodb表的元数据.撤销记录.修改buffer和双写buffer.如果file-per-t ...

  2. HTTP服务原理

    第1章 HTTP服务介绍 1.1 简述用户访网站流程 a 进行域名信息的DNS解析 dig +trace 获得www.oldboyedu.com ip地址信息 b 进行与网站服务器建立连接,tcp三次 ...

  3. java注解Annotation的使用实例

    1.注解的定义 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java. ...

  4. WIN10 64位系统 如何安装.NET Framwork3.5

    把SXS文件夹复制到C盘根目录,然后以管理员身份运行CMD,大概2分钟能完成,然后这个SXS文件夹就可以删了        

  5. Core Java-多线程-线程的生命周期

    0. 在介绍线程前我们先看一下什么是进程? 进程是线程的母亲,如果在大学计算机课程里读过操作系统一定不会陌生. 所谓进程,它是计算机程序关于某数据集上的一次活动,是系统进行资源分配和调度的基本单位,是 ...

  6. JavaScript常用设计模式

    单例模式:确保类只能被实例化一次. var obj = {} 2.函数返回值 var func = function () {return {}} var obj = func(); 3.构造函数初始 ...

  7. [OpenGL] 斯坦福兔子与显示列表

    1.调整桌子的大小.         在OpenGL绘制长方体,能够通过函数: glutSolidCube(Size)          绘制得到的是一个正方体,再利用缩放矩阵使其变成长方体.使得桌子 ...

  8. 数组的翻转(非reverse())

    方法一: var arr = [1,2,3,4]; var arr2 = []; while(arr.length) { var num = arr.pop(); //删除数组最后一个元素并返回被删除 ...

  9. Mysql查询优化之 触发器加中间表 方法优化count()统计大数据量总数问题

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6138288.html 在上一篇博文我们提到,分页有三种方法.其中,第三种是我们最常用的.然而,在实际应用过程中 ...

  10. 在openerp撰写消息中增加图片

    openerp的撰写消息中, 在文本输入框中, 具有设置文本字体,设置对齐方式 等多种功能, 就像像写这篇新浪blog一样, 可以输入富文本信息. 美中不足的是, 它不能插入图片. 我们如何才能让op ...