获取Nd4j数组的任意切片

时间:2016-05-02 00:12:23

标签: java slice nd4j

我想以与我能够使用Numpy相同的方式在任意大小的Nd4j中执行切片。

a = numpy.arange(100)
a[25:50]

nd4j slice方法只接受维度和索引参数,而不是长度。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

我知道这是一个老问题,但我在搜索这个问题的时候碰到了它。

通过检查slice的源代码,我相信它只能返回从索引到索引不是部分的完整行/列。您可以将方法getNDArrayIndex实例的参数一起使用。例如,此代码是您numpy代码的翻译。

import org.nd4j.linalg.api.ndarray.INDArray;
import static org.nd4j.linalg.factory.Nd4j.linspace;
import static org.nd4j.linalg.indexing.NDArrayIndex.interval;

class SliceExample {
    public static void main(String[] args) {
        INDArray a = linspace(0, 99, 100);    // up to 99 inclusive
        INDArray s = a.get(interval(25, 50)); // up to 50th non inclusive
    }
}

NDArrayIndex documentation