from shapely.ops import polygonize, unary_union
ls = LineString(np.c_[x, y])
lr = LineString(ls.coords[:] + ls.coords[0:1])
lr.is_simple
Splitting self-intersecting polygon only returned one polygon in shapely in Python