【发布时间】:2010-11-21 21:52:35
【问题描述】:
我在 Python 中有一个 3D 数组,我需要遍历数组中的所有立方体。也就是说,对于数组维度中的所有(x,y,z),我需要访问多维数据集:
array[(x + 0, y + 0, z + 0)]
array[(x + 1, y + 0, z + 0)]
array[(x + 0, y + 1, z + 0)]
array[(x + 1, y + 1, z + 0)]
array[(x + 0, y + 0, z + 1)]
array[(x + 1, y + 0, z + 1)]
array[(x + 0, y + 1, z + 1)]
array[(x + 1, y + 1, z + 1)]
该数组是一个 Numpy 数组,尽管这并不是必需的。我刚刚发现使用numpy.fromfile() 使用单行代码读取数据非常容易。
有没有比以下更 Pythonic 的方式来迭代这些?这看起来就像使用 Python 语法的 C。
for x in range(x_dimension):
for y in range(y_dimension):
for z in range(z_dimension):
work_with_cube(array[(x + 0, y + 0, z + 0)],
array[(x + 1, y + 0, z + 0)],
array[(x + 0, y + 1, z + 0)],
array[(x + 1, y + 1, z + 0)],
array[(x + 0, y + 0, z + 1)],
array[(x + 1, y + 0, z + 1)],
array[(x + 0, y + 1, z + 1)],
array[(x + 1, y + 1, z + 1)])
【问题讨论】:
-
stackoverflow.com/questions/1280667/… 会回答这个问题吗?
-
那将是范围(...-1),这里...
-
实际上,是的@tom10,它确实回答了这个问题