'Returns a view of the array sliced at `idx` in the first dim.
This is called through ``x[idx]``.
Parameters
idx : int
index for slicing the `NDArray` in the first dim.
Returns
NDArray
`NDArray` sharing the memory with the current one sliced at `idx` in the first dim.
Examples
>>> a = mx.nd.array([[1,2], [3, 4]])
>>> a[1].asnumpy()
array([ 3.,  4.], dtype=float32)
>>> b = mx.nd.array([1, 2, 3, 4])
>>> b[0].asnumpy()
array([ 1.], dtype=float32)'

def _at(self, idx):

    handle = NDArrayHandle()
    idx = mx_uint(idx)
    check_call(_LIB.MXNDArrayAt(self.handle, idx, ctypes.byref(handle)))
    return NDArray(handle=handle, writable=self.writable)
