2012-11-10 102 views
0

我有一個灰色圖像,我想將每個像素映射到N個大小爲LxM的其他矩陣。我如何初始化這樣一個矩陣?我嘗試了 result=numpy.zeros(shape=(i_size[0],i_size[1],N,L,M)),我得到了Value Error'數組太大「。任何人都可以提出一種替代方法?在Python中創建一個5D數組

+3

你確定你需要一個5D數組,因爲數據量在N^5的範圍內變得非常快。 – tune2fs

+0

您可以嘗試使用np.tile和list.append創建這樣的數組。 – pacodelumberg

+0

我需要創建一個嵌套數組,並且np.tile和list.append似乎不工作。我需要的是像Matlab中的單元格 - 數組中的每個元素都包含另一個數組。 – user1482980

回答

0

如果我理解正確,灰色圖像中的每個像素都映射到N其他圖像中的單個像素。在這種情況下,地圖數組爲numpy.zeros((i.shape[0], i.shape[1], N, 2), dtype=numpy.int32),因爲您需要將1 x和1 y座標存儲在每個其他N數組中,而不是每次都存儲整個第N個數組。使用整數索引將進一步減少內存使用量。

然後result[y,x,N,0]result[y,x,N,1]yx映射到第N個圖像。