Yeah, it's ugly and annoying.  For example,

    In [27]: obrientransform([1,2,3], [4,5,9])  # Returns a 2-D array
    Out[27]: 
    array([[  1.75,  -0.5 ,   1.75],
           [  5.5 ,  -1.25,  16.75]])

but

    In [28]: obrientransform([1,2,3], [4,5,9,9])  # Returns a 1-D array (dtype object) of arrays.
    Out[28]: 
    array([array([ 1.75, -0.5 ,  1.75]),
           array([ 10.875     ,   3.375     ,   6.70833333,   6.70833333])], dtype=object)


What do you think of just returning the list?  That's my preference.