-2

在 Python 中,当我们想要遍历具有任意维度的矩阵时,我们可以使用这行代码:

for index in np.ndindex(data.shape[2:]):

例如 :

> for index in np.ndindex(3, 2, 1):
>     print(index) (0, 0, 0) (0, 1, 0) (1, 0, 0) (1, 1, 0) (2, 0, 0) (2, 1, 0)

在 java 中,我们可以通过确定数量的 for 循环以一种简单的方式来实现,但前提是有关维度的知识。但在任意维度上,算法一定更复杂。

ND4J lib 中是否有任何用于迭代索引的内置方法?

4

1 回答 1

2

在 nd4j 中,我们有一个NDIndexIterator允许您遍历坐标。

这是示例:

NdIndexIterator shapeIter = new NdIndexIterator(2, 2);
//import org.nd4j.linalg.api.iter.NdIndexIterator;

long[][]  possibleSolutions = new long[][] {{0, 0}, {0, 1}, {1, 0}, {1, 1},};
for (int i = 0; i < 4; i++) {
    assertArrayEquals(possibleSolutions[i], shapeIter.next());
}
于 2020-08-21T12:36:39.177 回答