meshgrid函数中的indexing参数问题

   日期:2020-09-06     浏览:93    评论:0    
核心提示:meshgrid函数在二维空间中可以简单地理解为将x轴与y轴的坐标连接起来形成了一个网格,我们知道空间中的点是由坐标确定的,因此,当x与y关联起来后,我们便可以给与某个点某个特定值并画出对应的图像。这里我想要着重的说一下二维以及三维的meshgrid的参数index的问题。...

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

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

import numpy as np


class 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网格创建命令中,笛卡尔坐标系是默认的坐标系。

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

import numpy as np


class 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轴,我们在编程中通常很少使用的这种坐标系。但是它也有自己的优势,这里不进一步说明。

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

import numpy as np


class 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]]] """

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

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

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服