This kata focuses on the Numpy python package and you can read up on the Numpy array manipulation functions here: https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.array-manipulation.html

You will get two integers `N` and `M`. You must return an array with two sub-arrays with numbers in ranges `[0, N / 2)` and `[N / 2, N)` respectively, each of them being rotated `M` times.

```
reorder(10, 1)   =>  [[4, 0, 1, 2, 3], [9, 5, 6, 7, 8]]
reorder(10, 3)   =>  [[2, 3, 4, 0, 1], [7, 8, 9, 5, 6]]
reorder(10, 97)  =>  [[3, 4, 0, 1, 2], [8, 9, 5, 6, 7]]
```

Difficulty: introductory

Starter code:

def reorder(a, b):
	

Solutions:
import numpy as np


def reorder(a, b):
    return np.roll(np.arange(a).reshape(2, -1), b, 1).tolist()


from collections import deque


def reorder(n, m):
    a, b = deque(range(n // 2)), deque(range(n // 2, n))
    a.rotate(m)
    b.rotate(m)
    return [list(a), list(b)]

# Numpy?
# https://media.tenor.com/images/36c2be302f423c792ead1cca7018fe88/tenor.png
def reorder(N, M):
    L1 = list(range(N>>1))
    L2 = list(range(N>>1, N))
    R = M % (N >> 1)
    return [L1[-R:] + L1[:-R], L2[-R:] + L2[:-R]]

def reorder(a, b):
    a >>= 1
    b %= a
    return [[d+(i-b)%a for i in range(a)] for d in (0,a)]

import numpy as np

def reorder(a, b):
    if a % 2:
        m = a // 2
        new_array = np.array([number for number in range(0, a)])
        c = np.array_split(new_array, len(new_array) / m)
        d = [list(np.roll(c[0], b)), list(np.roll(c[1], b))]
    else:
        new_array = np.array([number for number in range(0, a)])
        c = np.array_split(new_array, len(new_array) / (a // 2))
        d = [list(np.roll(c[0], b)), list(np.roll(c[1], b))]
    return d

reorder = lambda a, b: [x[-b%len(x):] + x[:-b%len(x)] for x in map(list, (range(a//2), range(a//2, a)))]

def reorder(a, b):
    arr1, arr2 = list(range(a // 2)), list(range(a // 2, a))
    for _ in range(b): arr1, arr2 = [arr1[-1]] + arr1[:-1], [arr2[-1]] + arr2[:-1]
    return [arr1, arr2]

import numpy
def reorder(a, b):
    result = [list(numpy.roll([i for i in range(0, a//2)], b)), list(numpy.roll([i for i in range(a//2, a)], b))]
    return result

import numpy
def reorder(a, b):
    first = numpy.roll(numpy.array([i for i in range(0, int(a/2))]), b)
    second = numpy.roll(numpy.array([i for i in range(int(a/2), a)]), b)
    
    result = [[i for i in first], [j for j in second]]
    return result

def reorder(a, b):
    import numpy
    return [list(numpy.roll(numpy.split(numpy.arange(a), 2)[0],b)),list(numpy.roll(numpy.split(numpy.arange(a), 2)[1],b))]