【发布时间】:2012-11-28 02:56:06
【问题描述】:
所以这是另一个 n 维数组问题: 我希望能够将 n 维数组中的每个值与其邻居进行比较。例如,如果 a 是二维数组,我希望能够检查:
a[y][x]==a[y+1][x]
适用于所有元素。所以基本上检查所有维度的所有邻居。现在我正在通过:
for x in range(1,a.shape[0]-1):
do.something(a[x])
使用了数组的形状,这样我就不会在边缘遇到超出范围的索引。因此,如果我想在 n-D 中对数组中的所有元素执行类似的操作,我确实需要 n 个看起来不整洁的 for 循环。有没有办法通过切片来做到这一点?像 a==a[:,-1,:] 这样的东西还是我完全理解错了?有没有办法告诉切片在最后停止?或者是否会有另一种想法让事情以完全不同的方式工作?屏蔽数组? 问候乔尼
【问题讨论】:
-
你如何处理边缘的索引?
-
这正是我直到现在才使用for循环的原因。在边缘,没有 x+1 或 z+1,所以我只迭代直到 shape[0]-1。
标签: python arrays numpy indexing slice