當我開始學習numpy時,我感到很驚訝,那裏有N維數組。我是一名程序員,我認爲沒有人使用超過二維數組。其實我甚至無法超越二維數組。我不知道如何思考3D,4D,5D陣列或更多。我不知道在哪裏使用它們。N-D陣列使用示例
您能否給我舉例說明3D,4D,5D ...等陣列在哪裏使用?如果一個人使用numpy.sum(array, axis=5)
5D陣列會發生什麼?
當我開始學習numpy時,我感到很驚訝,那裏有N維數組。我是一名程序員,我認爲沒有人使用超過二維數組。其實我甚至無法超越二維數組。我不知道如何思考3D,4D,5D陣列或更多。我不知道在哪裏使用它們。N-D陣列使用示例
您能否給我舉例說明3D,4D,5D ...等陣列在哪裏使用?如果一個人使用numpy.sum(array, axis=5)
5D陣列會發生什麼?
實際應用很難想出,但我可以給你一個簡單的3D例子。
想象一下,將3D世界(例如遊戲或模擬)分成相同大小的立方體。每個立方體都可以包含某種特定的值(一個很好的例子就是氣候建模的溫度)。矩陣然後可以用於進一步的操作(簡單的計算它的移調,它的行列式等)。
我最近有一個任務,涉及在二維空間建模流體動力學。我可以很容易地將它擴展到3D工作,這需要我使用3D矩陣。
您可能還希望進一步擴展矩陣來迎合時間,這將使他們成爲4D。最後,它真的歸結爲你正在處理的具體問題。
然而,作爲結束註釋,2D矩陣仍然用於3D圖形(您使用4x4增廣矩陣)。
例如,3D陣列可用於表示電影,即隨時間變化的2D圖像。 對於給定的時間,前兩個軸將給出圖像中像素的座標,相應的值將給出該像素的顏色或灰度級。第三軸代表時間。對於每個時間段,您都有完整的圖像。
在這個例子中,numpy.sum(數組,軸= 2)將在給定像素中集成曝光。如果你想到在低光照條件下拍攝的電影,你可以考慮做一些這樣的事情,以便能夠看到任何東西。
幾個簡單的例子是:
n x m x p
矩陣p
- 載體,甲n x m
2D陣列,正如從計算圖像的梯度值的numpy.sum(array, axis=5)
不適用於一個5D-陣列(如軸從0開始)
有這樣的例子很多...的你試圖表示它的方式可能是錯誤的,我們舉一個簡單的例子:
然後通過:行,列,樓層和貨架上的索引來標識一個框。
一個項目標識爲:行,列,層,索引在貨架上,索引在框中。
基本上,一種方法(不是最好的......)來模擬這個問題將是使用5D陣列。
它們非常適用於科學計算。現在,例如,我正在模擬輸出4D數組中的數據:具體爲
|時間| x位置| y-position | z位置|。
幾乎每個現代的空間模擬都將使用多維陣列,以及計算機遊戲的編程。