假设我有一个3D numpy.array,例如维度为x,y,z的,有没有一种方法可以沿着特定的轴迭代切片?类似于:
for layer in data.slices(dim=2):
# do something with layer编辑:为了清楚起见,示例是一个dim=3数组,即shape=(len_x,len_y,len_z)。Elazar和等效的kamjagin的解决方案可以工作,但不是通用的-你必须手动构造[:, :, i],这意味着你需要知道维数,并且代码不够通用,不能处理任意维数的数组。你可以使用像[..., :]这样的东西来填充缺失的维度,但同样,你仍然需要自己构建它。
对不起,应该说得更清楚些,这个例子有点太简单了!
发布于 2013-06-28 06:56:31
如果我错了,请纠正我,但在我看来,您的3D数组将如下所示:
>>> my_array.shape
(3,N)其中N是数组的大小。所以如果你想迭代一个维度,你可以这样做:
>>> for item in my_array[1,:]:这将在第二个维度上迭代。
https://stackoverflow.com/questions/17354439
复制相似问题