Given the following numpy array:
arr = np.array([0, 1, 2, 3, 4, 5])
what iterable would return sub-arrays of length x from arr? (Given that len(arr) is a multiple of x)
x = 2
sub_arrays = [sub_arr for sub_arr in iterable(arr, x)]
sub_arrays = [ np.ndarray( [0, 1] ), np.ndarray( [2, 3] ), np.ndarray( [4, 5] ) ]
I know that array slicing is possible with start, stop, and step arguments, but that returns individual elements:
x = 2
sub_elements = [sub_elem for sub_elem in arr[::x]]
sub_elements = [0, 2, 4]
>Solution :
you should use np.array_split
arr = np.array([0, 1, 2, 3, 4, 5])
x = 2
sub_elements = np.array_split(arr, len(arr)/x)
[ array([0,1]), array([2,3]), array([4,5]) ]