2012-11-10 234 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个图像。