<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def quaternion_from_axis_angle(v):
 """Convert axis-angle representation to a quaternion vector. Parameters v : :obj:`numpy.ndarray` of float An axis-angle representation. Returns ------- :obj:`numpy.ndarray` of float A quaternion vector from the axis-angle vector. """

        theta = np.linalg.norm(v)
        if theta > 0:
            v = v / np.linalg.norm(v)
        ax, ay, az = v    
        qx = ax * np.sin(0.5 * theta)
        qy = ay * np.sin(0.5 * theta)
        qz = az * np.sin(0.5 * theta)        
        qw = np.cos(0.5 * theta)
        q = np.array([qw, qx, qy, qz])
        return q