|
numpy中meshgrid和mgrid的区别和使用
# meshgrid函数通常使用在数据的矢量化上。
# 它适用于生成网格型数据,可以接受两个一维数组生成两个二维矩阵,对应两个数组中所有的(x,y)对
# np.meshgrid只能处理2维
mgrid非函数
用法:返回多维结构,常见的如2D图形,3D图形。对比np.meshgrid,在处理大数据时速度更快,且能处理多维(np.meshgrid只能处理2维)
ret = np.mgrid[ 第1维,第2维 ,第3维 , …]
按维度来传参的
返回多值,以多个矩阵的形式返回
第1返回值为第1维数据在最终结构中的分布,
第2返回值为第2维数据在最终结构中的分布,以此类推。(分布以矩阵形式呈现)
# 核心区别:meshgrid针对坐标 而mgrid针对矩阵维度
- # -*- coding: utf-8 -*-
- __author__ = u'东方耀 微信:dfy_88888'
- __date__ = '2019/12/16 9:09'
- __product__ = 'PyCharm'
- __filename__ = 'np.meshgrid与np.mgrid区别?'
- import numpy as np
- x = np.array([1, 2, 3])
- y = np.array([4, 5])
- # meshgrid函数通常使用在数据的矢量化上。
- # 它适用于生成网格型数据,可以接受两个一维数组生成两个二维矩阵,对应两个数组中所有的(x,y)对
- # np.meshgrid只能处理2维
- cx, cy = np.meshgrid(x, y)
- # cx是x向下扩展而来 cy是y向右扩展而来
- print(cx, cx.shape)
- print(cy, cy.shape)
- print('*'*20)
- cx, cy = np.meshgrid(x, y, sparse=True)
- print(cx, cx.shape)
- print(cy, cy.shape)
- pp=np.mgrid[-5:5:5j]
- # 中括号里面传第一维 5j表示5个点 等差数列
- print(pp)
- pp = np.mgrid[-1:1:2j,-2:2:3j]
- # 中括号里面传第一维 第二维
- print(pp.shape, pp)
- x, y = pp
- # 最大区别:meshgrid针对坐标 而mgrid针对矩阵维度
- print('*'*20)
- # x是第一维数据向右扩展
- print(x, x.shape)
- # y是第二维数据向下扩展
- print(y, y.shape)
- pp = np.mgrid[-1:1:2j,-2:2:3j,-3:3:5j]
- x, y, z = pp
- # 第一维 第二维 第三维
- # 第个维度数据在最终结构中的分布
- print(x, x.shape)
- print(y, y.shape)
- print(z, z.shape)
- print('*'*20)
- print(pp.shape, pp)
复制代码
|
|