如何迭代矩阵的索引?

9avjhtql  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(359)

在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库中是否有用于迭代索引的内置方法?

nwnhqdif

nwnhqdif1#

在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());
}

相关问题