广告
返回顶部
首页 > 资讯 > 精选 >np.meshgrid中的indexing参数问题如何解决
  • 143
分享到

np.meshgrid中的indexing参数问题如何解决

2023-07-05 11:07:20 143人浏览 独家记忆
摘要

这篇文章主要介绍“np.meshgrid中的indexing参数问题如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“np.meshgrid中的indexing参数问题如何解决”文章能帮助大家解

这篇文章主要介绍“np.meshgrid中的indexing参数问题如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“np.meshgrid中的indexing参数问题如何解决”文章能帮助大家解决问题。

meshgrid函数在二维空间中可以简单地理解为将x轴与y轴的每个位置的坐标关联起来形成了一个网格,我们知道空间中的点是由坐标确定的,因此,当x与y关联起来后,我们便可以给与某个点某个特定值并画出对应的图像。具体的可以百度一下,会有很多较为详细的介绍。

这里我想要着重的说一下二维以及三维的meshgrid的参数indexing的问题。

二维meshgrid函数

import numpy as npclass Debug:    def __init__(self):        self.x = np.arange(5)        self.y = np.arange(5)            def grid(self):        X, Y = np.meshgrid(self.x, self.y, indexing="xy")        return X, Y    main = Debug()X, Y = main.grid()print("The X grid is:")print(X)print("The Y grid is:")print(Y)"""The X grid is:[[0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4]]The Y grid is:[[0 0 0 0 0] [1 1 1 1 1] [2 2 2 2 2] [3 3 3 3 3] [4 4 4 4 4]]"""

从上面的结果可以看出,所获取的网格对应如下图所示,横向为x轴,纵向为y轴,类似于我们在几何空间中使用的坐标系, 我们通常称之为笛卡尔坐标系(Cartesian coordinate)。在二维meshgrid网格创建命令中,笛卡尔坐标系是默认的坐标系。

np.meshgrid中的indexing参数问题如何解决

然而在python编程中,还有一种较为常用的indexing取法,代码如下:

import numpy as npclass Debug:    def __init__(self):        self.x = np.arange(5)        self.y = np.arange(5)            def grid(self):        X, Y = np.meshgrid(self.x, self.y, indexing="ij")        return X, Y    main = Debug()i, j = main.grid()print("The i grid is:")print(i)print("The j grid is:")print(j)"""The i grid is:[[0 0 0 0 0] [1 1 1 1 1] [2 2 2 2 2] [3 3 3 3 3] [4 4 4 4 4]]The j grid is:[[0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4]]"""

此时从上面的结果我们可以看出,所获取的网格对应如下图所示,纵向为i轴,横向为j轴,我们在编程中通常很少使用的这种坐标系。但是它也有自己的优势,这里不进一步说明。

np.meshgrid中的indexing参数问题如何解决

三维meshgrid函数

进一步我们讨论三维的情况,代码如下:

import numpy as npclass Debug:    def __init__(self):        self.x = np.arange(3)        self.y = np.arange(3)        self.z = np.arange(3)            def grid(self):        X, Y, Z = np.meshgrid(self.x, self.y, self.z)        return X, Y, Z    main = Debug()X, Y, Z = main.grid()print("The X grid is:")print(X)print("The Y grid is:")print(Y)print("The Z grid is:")print(Z)"""The X grid is:[[[0 0 0]  [1 1 1]  [2 2 2]] [[0 0 0]  [1 1 1]  [2 2 2]] [[0 0 0]  [1 1 1]  [2 2 2]]]The Y grid is:[[[0 0 0]  [0 0 0]  [0 0 0]] [[1 1 1]  [1 1 1]  [1 1 1]] [[2 2 2]  [2 2 2]  [2 2 2]]]The Z grid is:[[[0 1 2]  [0 1 2]  [0 1 2]] [[0 1 2]  [0 1 2]  [0 1 2]] [[0 1 2]  [0 1 2]  [0 1 2]]]"""

由上面的结果我们可以看到,此时的坐标轴对应如下图像:

np.meshgrid中的indexing参数问题如何解决

x轴向下,y轴向屏幕内侧,z轴向右侧,在三维图像中不再根据indexing值来区分坐标轴了,而是统一规定了坐标轴的取法,只有对于这个坐标轴的取法深入理解,才能在之后的三维数据处理中游刃有余。

特别说明

但是这里有一个问题,来看一组代码:

class Debug:    def __init__(self):        x = np.array([[[0],                       [2]], [[4],                              [6]], [[8],                                     [10]]])        print(x.shape)main = Debug()"""(3, 2, 1)"""

我们可以看到,输出结果为(3, 2, 1),即沿着x1个元素,沿着y2个元素,沿着z3个元素。再来看一下我们使用meshgrid方法生成三维网格的情况。

import numpy as npclass Debug:    def __init__(self):        self.x = np.arange(1)        self.y = np.arange(2)        self.z = np.arange(3)    def grid(self):        X, Y, Z = np.meshgrid(self.x, self.y, self.z)        return X, Y, Zmain = Debug()X, Y, Z = main.grid()print("The X grid is:")print(X.shape)print("The Y grid is:")print(Y.shape)print("The Z grid is:")print(Z.shape)"""The X grid is:(2, 1, 3)The Y grid is:(2, 1, 3)The Z grid is:(2, 1, 3)"""

我们可以看到,最终输出的X,Y,Zshape均为(2, 1, 3),这对应的是沿着x3个元素,沿着y1个元素,沿着z2个元素。突然感觉有些混乱,不符合我们之前想要得到的x,y,z的排列顺序,为了能够得到正常的排列顺序,我们可以使用如下代码:

import numpy as npclass Debug:    def __init__(self):        self.x = np.arange(1)        self.y = np.arange(2)        self.z = np.arange(3)    def grid(self):        X, Y, Z = np.meshgrid(self.y, self.z, self.x)        return X, Y, Zmain = Debug()X, Y, Z = main.grid()print("The X grid is:")print(X.shape)print("The Y grid is:")print(Y.shape)print("The Z grid is:")print(Z.shape)"""The X grid is:(3, 2, 1)The Y grid is:(3, 2, 1)The Z grid is:(3, 2, 1)"""

可以看到运行后我们得到了符合Python默认坐标轴习惯的网格形式,这时对应的x轴向右侧,y轴向下,z轴向屏幕里面。这个仅仅是为了理解需要,实际操作中无需进行这种坐标轴变换操作,直接使用默认的三维坐标轴方向即可。

关于“np.meshgrid中的indexing参数问题如何解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: np.meshgrid中的indexing参数问题如何解决

本文链接: https://www.lsjlt.com/news/351448.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • np.meshgrid中的indexing参数问题解决
    目录二维meshgrid函数三维meshgrid函数特别说明meshgrid函数在二维空间中可以简单地理解为将x轴与y轴的每个位置的坐标关联起来形成了一个网格,我们知道空间中的点是由...
    99+
    2023-03-13
    np.meshgrid的indexing参数 np.meshgrid indexing
  • np.meshgrid中的indexing参数问题如何解决
    这篇文章主要介绍“np.meshgrid中的indexing参数问题如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“np.meshgrid中的indexing参数问题如何解决”文章能帮助大家解...
    99+
    2023-07-05
  • 解决pygal.style的LightColorizedStyle参数问题
    目录pygal.style的LightColorizedStyle参数 问题解决方案解决思路pygal工具提示失效解决方案pygal.style的LightColorize...
    99+
    2022-11-11
  • 如何解决MyBatis中Enum字段参数解析问题
    小编给大家分享一下如何解决MyBatis中Enum字段参数解析问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!基础Class和TypeHandlerMyBati...
    99+
    2023-06-20
  • php url中文参数乱码问题如何解决
    这篇文章主要讲解了“php url中文参数乱码问题如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php url中文参数乱码问题如何解决”吧!乱码问题的原因在 PHP 中处理中文参数时...
    99+
    2023-07-05
  • C#输出参数out问题如何解决
    这篇文章主要讲解了“C#输出参数out问题如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#输出参数out问题如何解决”吧!C# 输出参数out什么是输出参数方法声明时,使用out修...
    99+
    2023-07-05
  • thinkphp参数不正确问题如何解决
    这篇文章主要介绍“thinkphp参数不正确问题如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“thinkphp参数不正确问题如何解决”文章能帮助大家解决问题。一、什么是“参数不正确”通常,当...
    99+
    2023-07-05
  • jpa中query参数问题怎么解决
    在JPA中,可以使用以下几种方式解决query参数问题:1. 使用命名参数:在JPQL查询语句中使用命名参数,然后在创建Query对...
    99+
    2023-09-13
    jpa
  • Postman如何解决token传参的问题
    小编给大家分享一下Postman如何解决token传参的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!问题描述:有一个登陆接...
    99+
    2022-10-19
  • 解决MyBatis中Enum字段参数解析问题
    目录基础Class和TypeHandler请求参数解析问题问题解决基础Class和TypeHandler MyBatis操作的基本User对象结构如下: @Data @Alia...
    99+
    2022-11-12
  • feign传参MultipartFile问题如何解决
    本篇内容介绍了“feign传参MultipartFile问题如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!feign传参Multip...
    99+
    2023-06-29
  • SpringMVC中参数绑定问题怎么解决
    这篇文章主要讲解了“SpringMVC中参数绑定问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringMVC中参数绑定问题怎么解决”吧!1. 参数绑定的过程我们可以回忆一下,...
    99+
    2023-06-29
  • 如何解决php对象参数不确定的问题
    小编给大家分享一下如何解决php对象参数不确定的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!php对象参数不确定的时候需要改变一下写法,修改后的代码如“function uncertainParam() {$args...
    99+
    2023-06-26
  • 如何解决Nginx参数站点配置上的问题
    如何解决Nginx参数站点配置上的问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Nginx参数有很多经典的语句,其中upstream....
    99+
    2022-10-19
  • mapper的对象传参问题如何解决
    如果您指的是在Python中使用`mapper`对象时的参数传递问题,可以使用以下两种方式解决:1. 使用`mapper`对象的`c...
    99+
    2023-10-12
    mapper
  • docker中运行的JVM参数问题怎么解决
    这篇文章主要讲解了“docker中运行的JVM参数问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker中运行的JVM参数问题怎么解决”吧!方法一、jcmd命令:jps获取j...
    99+
    2023-06-30
  • 如何解决Feign调用的GET参数传递的问题
    这篇文章主要介绍了如何解决Feign调用的GET参数传递的问题的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何解决Feign调用的GET参数传递的问题文章都会有所收获,下面我们一起来看看吧。需求在消费方服务通...
    99+
    2023-06-29
  • parfile解决exp时参数过多的问题
    parfile解决exp时参数过多的问题 转载▼ ...
    99+
    2022-10-18
  • 如何解决feign调用中文参数被encode编译的问题
    这篇文章主要介绍如何解决feign调用中文参数被encode编译的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Feign调用中文参数被encode编译原因在实现一个feign调用时使用了Post请求,并且拼接u...
    99+
    2023-06-29
  • 如何解决php传递页面参数乱码问题
    本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。如何解决php传递页面参数乱码问题?php get传值 中文参数 乱码问题的尝试解决:网站的中文参数是直接传的 例如 /index.phpt=你好所有页面均为utf-8...
    99+
    2015-06-19
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作