最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于np.meshgrid函數(shù)中的indexing參數(shù)問題

 更新時間:2024年09月13日 09:49:58   作者:勤奮的大熊貓  
Meshgrid函數(shù)在二維與三維空間中用于生成坐標(biāo)網(wǎng)格,便于進(jìn)行圖像處理和空間數(shù)據(jù)分析,二維情況下,默認(rèn)使用笛卡爾坐標(biāo)系,而三維meshgrid則涉及不同的坐標(biāo)軸取法,在三維情況下,可能會出現(xiàn)坐標(biāo)軸排列序混亂

meshgrid函數(shù)在二維空間中可以簡單地理解為將x軸與y軸的每個位置的坐標(biāo)關(guān)聯(lián)起來形成了一個網(wǎng)格,我們知道空間中的點(diǎn)是由坐標(biāo)確定的,因此,當(dāng)x與y關(guān)聯(lián)起來后,我們便可以給與某個點(diǎn)某個特定值并畫出對應(yīng)的圖像。

具體的可以百度一下,會有很多較為詳細(xì)的介紹。

這里我想要著重的說一下二維以及三維的meshgrid的參數(shù)indexing的問題。

二維meshgrid函數(shù)

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

從上面的結(jié)果可以看出,所獲取的網(wǎng)格對應(yīng)如下圖所示,橫向?yàn)?code>x軸,縱向?yàn)?code>y軸,類似于我們在幾何空間中使用的坐標(biāo)系, 我們通常稱之為笛卡爾坐標(biāo)系(Cartesian coordinate)。

在二維meshgrid網(wǎng)格創(chuàng)建命令中,笛卡爾坐標(biāo)系是默認(rèn)的坐標(biāo)系。

然而在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]]
"""

此時從上面的結(jié)果我們可以看出,所獲取的網(wǎng)格對應(yīng)如下圖所示,縱向?yàn)?code>i軸,橫向?yàn)?code>j軸,我們在編程中通常很少使用的這種坐標(biāo)系。但是它也有自己的優(yōu)勢,這里不進(jìn)一步說明。

三維meshgrid函數(shù)

進(jìn)一步我們討論三維的情況,代碼如下:

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

由上面的結(jié)果我們可以看到,此時的坐標(biāo)軸對應(yīng)如下圖像:

x軸向下,y軸向屏幕內(nèi)側(cè),z軸向右側(cè),在三維圖像中不再根據(jù)indexing值來區(qū)分坐標(biāo)軸了,而是統(tǒng)一規(guī)定了坐標(biāo)軸的取法,只有對于這個坐標(biāo)軸的取法深入理解,才能在之后的三維數(shù)據(jù)處理中游刃有余。

特別說明

但是這里有一個問題,來看一組代碼:

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


main = Debug()
"""
(3, 2, 1)
"""

我們可以看到,輸出結(jié)果為(3, 2, 1),即沿著x1個元素,沿著y2個元素,沿著z3個元素。

再來看一下我們使用meshgrid方法生成三維網(wǎng)格的情況。

import numpy as np


class 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, Z


main = 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),這對應(yīng)的是沿著x3個元素,沿著y1個元素,沿著z2個元素。

突然感覺有些混亂,不符合我們之前想要得到的x,y,z的排列順序,為了能夠得到正常的排列順序,我們可以使用如下代碼:

import numpy as np


class 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, Z


main = 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)
"""

可以看到運(yùn)行后我們得到了符合Python默認(rèn)坐標(biāo)軸習(xí)慣的網(wǎng)格形式,這時對應(yīng)的x軸向右側(cè),y軸向下,z軸向屏幕里面。

這個僅僅是為了理解需要,實(shí)際操作中無需進(jìn)行這種坐標(biāo)軸變換操作,直接使用默認(rèn)的三維坐標(biāo)軸方向即可。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • django之常用命令詳解

    django之常用命令詳解

    下面小編就為大家?guī)硪黄猟jango之常用命令詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • Python中內(nèi)置的數(shù)據(jù)結(jié)構(gòu)類型詳解(內(nèi)置數(shù)據(jù)容器)

    Python中內(nèi)置的數(shù)據(jù)結(jié)構(gòu)類型詳解(內(nèi)置數(shù)據(jù)容器)

    在?Python?中,字典(dict)是一種非常常用的數(shù)據(jù)結(jié)構(gòu),用于存儲鍵值對,這篇文章給大家介紹Python中內(nèi)置的數(shù)據(jù)結(jié)構(gòu)類型詳解(內(nèi)置數(shù)據(jù)容器),感興趣的朋友一起看看吧
    2025-04-04
  • 一些讓Python代碼簡潔的實(shí)用技巧總結(jié)

    一些讓Python代碼簡潔的實(shí)用技巧總結(jié)

    隨著項(xiàng)目代碼行數(shù)的增加,不可避免的遇到軟件架構(gòu)腐敗的問題,所以如何寫出簡潔的代碼至關(guān)重要,這篇文章主要給大家介紹了一些讓Python代碼簡潔的實(shí)用技巧,需要的朋友可以參考下
    2021-08-08
  • 圖文詳解python安裝Scrapy框架步驟

    圖文詳解python安裝Scrapy框架步驟

    在本篇內(nèi)容中我們給大家整理了關(guān)于python安裝Scrapy框架的圖文詳細(xì)步驟,需要的朋友們跟著學(xué)習(xí)下。
    2019-05-05
  • 數(shù)組保存為txt, npy, csv 文件, 數(shù)組遍歷enumerate的方法

    數(shù)組保存為txt, npy, csv 文件, 數(shù)組遍歷enumerate的方法

    今天小編就為大家分享一篇數(shù)組保存為txt, npy, csv 文件, 數(shù)組遍歷enumerate的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python 解碼Base64 得到碼流格式文本實(shí)例

    Python 解碼Base64 得到碼流格式文本實(shí)例

    今天小編就為大家分享一篇Python 解碼Base64 得到碼流格式文本實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python Vaex實(shí)現(xiàn)快速分析100G大數(shù)據(jù)量

    Python Vaex實(shí)現(xiàn)快速分析100G大數(shù)據(jù)量

    Vaex是一個開源的DataFrame庫,它可以對表格數(shù)據(jù)集進(jìn)行可視化、探索、分析,甚至機(jī)器學(xué)習(xí),這些數(shù)據(jù)集和你的硬盤驅(qū)動器一樣大。本文就來聊聊如何利用Vaex實(shí)現(xiàn)快速分析100G大數(shù)據(jù)量,需要的可以參考一下
    2023-03-03
  • 詳解Python中matplotlib模塊的繪圖方式

    詳解Python中matplotlib模塊的繪圖方式

    Matplotlib是Python中最受歡迎的數(shù)據(jù)可視化軟件包之一,它是?Python常用的2D繪圖庫,同時它也提供了一部分3D繪圖接口。本文將詳細(xì)介紹Matplotlib的繪圖方式,需要的可以參考一下
    2022-07-07
  • python實(shí)現(xiàn)春晚魔術(shù)的示例代碼

    python實(shí)現(xiàn)春晚魔術(shù)的示例代碼

    本文主要介紹了python實(shí)現(xiàn)春晚魔術(shù)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • python list轉(zhuǎn)矩陣的實(shí)例講解

    python list轉(zhuǎn)矩陣的實(shí)例講解

    今天小編就為大家分享一篇python list轉(zhuǎn)矩陣的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08

最新評論

牡丹江市| 漯河市| 奉节县| 仲巴县| 故城县| 逊克县| 万盛区| 罗甸县| 合川市| 淮阳县| 呈贡县| 疏勒县| 南昌县| 德兴市| 嘉兴市| 上饶县| 互助| 寻乌县| 五原县| 罗城| 井陉县| 新平| 云龙县| 星子县| 板桥市| 澄城县| 蓬安县| 浑源县| 嘉祥县| 贵阳市| 民丰县| 淮安市| 班戈县| 衡水市| 南岸区| 彭州市| 探索| 丹阳市| 永胜县| 新和县| 出国|