NumPy is really helpful when creating arrays. If the first argument for numpy.array has a __getitem__ and __len__ method these are use
This workaround may not be the most efficient, but I like it for its clarity:
test_list = [Test([1,2,3]), Test([3,2,1])]
test_list.append(None)
test_array = np.array(test_list, dtype=object)[:-1]
Summary: You take your list, append None, then convert to a numpy array, preventing numpy from converting to a multidimensional array. Finally you just remove the last entry to get the structure you want.