使用for循环从3D Matrix调用对象

时间:2013-12-03 04:15:18

标签: arrays object numpy matrix multidimensional-array

我有一个带有x和y坐标的地图数组,每个(x,y)坐标与一个数字相关。我收集了一堆具有相同尺寸的这些地图,并将它们组织成一个3D矩阵。

现在,我希望一次一个地调用x,y坐标中的所有数字。

我认为这就像

    for t in Map_Collection:
        for x, y in Map_Collection[:,:,t]
            print Map_Collection[x,y] 
            #hoping it would give a large list of single numbers    

这没有给我带来多个错误,我无法弄清楚原因。但我认为我的整个逻辑可能都没有了。

为了澄清我希望能够为每个时间戳找到地图的每个坐标的每个数字,并在我已经拥有的单独功能中使用它。

请帮忙。

1 个答案:

答案 0 :(得分:0)

让我们开始简单:

 map=np.arange(2*3*4).reshape(2,3,4)
 for t in map:
     print t
     print

产生

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

[[12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]

也就是说,每个t都是row的{​​{1}}(第一维)。

您尝试使用map作为最后一个索引。为此,您需要生成一系列数字,例如t

[0,1,2...]

将打印for i in range(map.shape[-1]): for j in range(map.shape[1]): for k in range(map.shape[0]): print map[k,j,i] 中的所有条目。它不漂亮,但它给你一个起点。您可能需要重新排序迭代器。

这是一种使用'行'来简化条目的方法:

map

按照for t in map: for x in t: for y in x: print y 生成它们的顺序(以及它们在arange中的存储顺序)给出值。