numpy數(shù)組坐標(biāo)軸問題解決
不知道大家有沒有一種感覺,每次當(dāng)使用numpy數(shù)組的時候坐標(biāo)軸總是傻傻分不清楚,然后就會十分的困惑,每次運算都需要去嘗試好久才能得出想要的結(jié)果。這里我們來簡單解釋一下numpy中一維,二維,三維數(shù)組的坐標(biāo)軸問題。
首先我們討論一維的情況,代碼如下:
import numpy as np class Debug: ? ? def __init__(self): ? ? ? ? self.array1 = np.array([0, 1, 2]) ? ? ? ? self.array2 = np.array([[0], [1], [2]]) ? ? def mainProgram(self): ? ? ? ? print("The value of array1 is: ") ? ? ? ? print(self.array1) ? ? ? ? print("The shape of array1 is: ") ? ? ? ? print(self.array1.shape) ? ? ? ? print("The value of array2 is: ") ? ? ? ? print(self.array2) ? ? ? ? print("The shape of array2 is: ") ? ? ? ? print(self.array2.shape) if __name__ == '__main__': ? ? main = Debug() ? ? main.mainProgram() """ The value of array1 is:? [0 1 2] The shape of array1 is:? (3,) The value of array2 is:? [[0] ?[1] ?[2]] The shape of array2 is:? (3, 1) """
從上面的結(jié)果我們可以看到,一維橫數(shù)組沿著橫向排列,我們可以認(rèn)定為x軸向,它的數(shù)組大小為(3,),一維列數(shù)組沿著縱向排列,我們可以認(rèn)為是y軸方向,它的大小為(3, 1),我們可以從左向右,看出第二個參數(shù)代表的是橫向上的參數(shù)個數(shù),第一個參數(shù)代表的是縱向上的參數(shù)個數(shù),因此我們可以將橫向數(shù)組的大小(3,)理解為(,3)更為合適。
接下來我們研究一下二維數(shù)組,哪個參數(shù)對應(yīng)的是橫坐標(biāo),哪個參數(shù)對應(yīng)的是縱坐標(biāo)。
代碼如下:
import numpy as np class Debug: ? ? def __init__(self): ? ? ? ? self.array1 = np.ones((2, 3)) ? ? ? ? self.array2 = np.ones((3, 2)) ? ? def mainProgram(self): ? ? ? ? print("The value of array1 is: ") ? ? ? ? print(self.array1) ? ? ? ? ?print("The shape of array1 is: ") ? ? ? ? print(self.array1.shape) ? ? ? ? print("The value of array2 is: ") ? ? ? ? print(self.array2) ? ? ? ? print("The shape of array2 is: ") ? ? ? ? print(self.array2.shape) if __name__ == '__main__': ? ? main = Debug() ? ? main.mainProgram() """ The value of array1 is:? [[1. 1. 1.] ?[1. 1. 1.]] The shape of array1 is:? (2, 3) The value of array2 is:? [[1. 1.] ?[1. 1.] ?[1. 1.]] The shape of array2 is:? (3, 2) """
從上面的結(jié)果我們可以看出,從左向右,第一個參數(shù)代表的是(row), 第二個參數(shù)代表的是列(column)。我們知道numpy中默認(rèn)的是笛卡爾坐標(biāo)系,所以橫向為x,縱向為y,具體的請看坐標(biāo)系(超鏈接點擊跳轉(zhuǎn)查看)。所以對self.array1來說,定義時輸入的數(shù)組大小的(2, 3)代表沿著x軸擁有3個值,沿著y軸擁有2個值。對比上述得到的結(jié)果與我們在一維情況中推斷得到的結(jié)果,證明我們的理解是正確的。
接著我們討論三維的情況:代碼如下:
import numpy as np class Debug: ? ? def __init__(self): ? ? ? ? self.array1 = np.ones((2, 3, 4)) ? ? def mainProgram(self): ? ? ? ? print("The value of array1 is: ") ? ? ? ? print(self.array1) ? ? ? ? print("The shape of array1 is: ") ? ? ? ? print(self.array1.shape) if __name__ == '__main__': ? ? main = Debug() ? ? main.mainProgram() """ The value of array1 is:? [[[1. 1. 1. 1.] ? [1. 1. 1. 1.] ? [1. 1. 1. 1.]] ?[[1. 1. 1. 1.] ? [1. 1. 1. 1.] ? [1. 1. 1. 1.]]] The shape of array1 is:? (2, 3, 4) """
不難發(fā)現(xiàn),沿著x軸方向擁有4個值,沿著y軸方向擁有3個值,沿著z軸方向擁有2個值。
綜上所述,在numpy數(shù)組中,定義三維數(shù)組時,從左向右, 第一個參數(shù)為z軸,第二個參數(shù)為y軸,第三個參數(shù)為x軸,即(z, y, x)。 對于各個坐標(biāo)軸在空間中的朝向問題,建議閱讀numpy數(shù)組坐標(biāo)軸。之后我們會進一步探討numpy模塊中的其他與坐標(biāo)軸相關(guān)的函數(shù)。
到此這篇關(guān)于numpy數(shù)組坐標(biāo)軸問題解決的文章就介紹到這了,更多相關(guān)numpy數(shù)組坐標(biāo)軸內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python摳圖教程之使用OpenCV實現(xiàn)背景去除
這篇文章主要給大家介紹了關(guān)于Python摳圖教程之使用OpenCV實現(xiàn)背景去除的相關(guān)資料,背景去除是在很多視覺應(yīng)用里的主要預(yù)處理步驟,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用
csv文件是一種逗號分隔的純文本形式存儲的表格數(shù)據(jù),Python內(nèi)置了CSV模塊,可直接通過該模塊實現(xiàn)csv文件的讀寫操作,下面這篇文章主要給大家介紹了關(guān)于Python操作csv文件之csv.writer()和csv.DictWriter()方法的基本使用,需要的朋友可以參考下2022-09-09Python?hashlib模塊與subprocess模塊使用詳細(xì)介紹
這篇文章主要介紹了Python?hashlib模塊與subprocess模塊使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10在Python開發(fā)環(huán)境中調(diào)用ChatGPT模型詳細(xì)過程
在開發(fā)過程當(dāng)中時常需要使用 ChatGPT 來完成一些任務(wù),但總是使用網(wǎng)頁交互模式去 Web 端訪問 ChatGPT 是很麻煩的,這時候我們可以使用代碼來調(diào)用 ChatGPT 模型,本文將詳細(xì)介紹在 Python 開發(fā)環(huán)境中調(diào)用 ChatGPT 模型過程,,需要的朋友可以參考下2023-05-05