我想以与使用Numpy相同的方式在任意大小的Nd4j中执行切片。
a = numpy.arange(100)
a[25:50]
nd4j slice方法仅采用维度和索引参数,而不采用长度。我该如何实现?
最佳答案
我知道这是一个古老的问题,但是我在仔细搜索这个问题时遇到了这个问题。
通过检查slice
的源代码,我相信它只能返回完整的行/列,而不是从索引到索引的部分。您可以将get
方法与NDArrayIndex
实例的s参数一起使用。例如,此代码是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