Examine the resulting array:
In [354]: a = np.array([np.array([np.array([2,3]), np.array([1])]), np.array([5,
...: 6, 7])])
<ipython-input-354-0bcb7871bdd4>:1: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
a = np.array([np.array([np.array([2,3]), np.array([1])]), np.array([5, 6, 7])])
In [355]: a.shape
Out[355]: (2,)
In [356]: a[0].shape
Out[356]: (2,)
In [357]: a[1].shape
Out[357]: (3,)
It contains two elements, both arrays. One has 2 elements, the other 3. But the first itself contains 2 arrays.
We can join the 2 outer arrays with concatenate:
In [359]: np.concatenate(a)
Out[359]: array([array([2, 3]), array([1]), 5, 6, 7], dtype=object)
but the result is still object dtype because of the inner arrays.
We need to first clean up the inner array:
In [362]: a[0] = np.concatenate(a[0])
In [363]: a
Out[363]: array([array([2, 3, 1]), array([5, 6, 7])], dtype=object)
In [364]: np.concatenate(a)
Out[364]: array([2, 3, 1, 5, 6, 7])
This a new array, not a view. The original array is object dtype. The result is integer dtype. There's no way to make that conversion as a view.