<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def moveaxis(tensor, source, destination):
 """Moves the `source` axis into the `destination` position while leaving the other axes in their original order Parameters tensor : mx.nd.array The array which axes should be reordered source : int or sequence of int Original position of the axes to move. Can be negative but must be unique. destination : int or sequence of int Destination position for each of the original axes. Can be negative but must be unique. Returns ------- result : mx.nd.array Array with moved axes. Examples -------- (3L, 2L) (5, 4, 3) """

    try:
        source = np.core.numeric.normalize_axis_tuple(source, tensor.ndim)
    except IndexError:
        raise ValueError('Source should verify 0 <= source < tensor.ndim'
                         'Got %d' % source)
    try:
        destination = np.core.numeric.normalize_axis_tuple(destination, tensor.ndim)
    except IndexError:
        raise ValueError('Destination should verify 0 <= destination < tensor.ndim (%d).'
                         % tensor.ndim, 'Got %d' % destination)

    if len(source) != len(destination):
        raise ValueError('`source` and `destination` arguments must have '
                         'the same number of elements')

    order = [n for n in range(tensor.ndim) if n not in source]

    for dest, src in sorted(zip(destination, source)):
        order.insert(dest, src)

    return op.transpose(tensor, order)