would you consider a solution where all the arr1, arr2 values are stored in a single ndarray and the 2-D control structure was simply indexes into that storage array? For example, the control structure could be something like below, all pointing into the single storage array.
index_type = np.dtype([
('arr1_begin_index', np.uint64),
('arr1_end_index', np.uint64),
('arr2_begin_index', np.uint64),
('arr2_begin_index', np.uint64)
])