如何迭代矩阵的索引?
How to iterate over indices of a matrix?
在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 库中是否有用于遍历索引的内置方法?
在 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());
}
在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 库中是否有用于遍历索引的内置方法?
在 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());
}