<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def Skew(poly, dist=None, **kws):
 """ Skewness operator. Element by element 3rd order statistics of a distribution or polynomial. Args: poly (Poly, Dist):
 Input to take skewness on. dist (Dist):
 Defines the space the skewness is taken on. It is ignored if ``poly`` is a distribution. Returns: (numpy.ndarray):
 Element for element variance along ``poly``, where ``skewness.shape == poly.shape``. Examples: [2. 0.] [nan 2. 0. 0.] """

    if isinstance(poly, distributions.Dist):
        x = polynomials.variable(len(poly))
        poly, dist = x, poly
    else:
        poly = polynomials.Poly(poly)

    if poly.dim < len(dist):
        polynomials.setdim(poly, len(dist))

    shape = poly.shape
    poly = polynomials.flatten(poly)

    m1 = E(poly, dist)
    m2 = E(poly**2, dist)
    m3 = E(poly**3, dist)
    out = (m3-3*m2*m1+2*m1**3)/(m2-m1**2)**1.5

    out = numpy.reshape(out, shape)
    return out