代码之家  ›  专栏  ›  技术社区  ›  Jsevillamol

迭代numpy数组的最后维度

  •  0
  • Jsevillamol  · 技术社区  · 7 年前

    考虑下面的片段:

    a = np.ones((2,2,2,2,2))
    for example in a:
        for row in example:
            for col in row:
                for box in col:
                    print (box.shape)
    

    有这么多嵌套的 for s生成了一些非常难看的代码。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Joe Iddon    7 年前

    调整阵列形状:

    for box in a.reshape(16,2):
        print(box.shape)
    

    for box in a.reshape(np.prod(a.shape[:-1]), a.shape[-1]):
         print(box.shape)
    

    它总是在最后一个维度之前迭代一次 a .