<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _elevate_nodes(nodes):
 r"""Degree-elevate a B |eacute| zier curves. Does this by converting the current nodes :math:`v_0, \ldots, v_n` to new nodes :math:`w_0, \ldots, w_{n + 1}` where .. math:: \begin{align*} w_0 &= v_0 \\ w_j &= \frac{j}{n + 1} v_{j - 1} + \frac{n + 1 - j}{n + 1} v_j \\ w_{n + 1} &= v_n \end{align*} .. note:: There is also a Fortran implementation of this function, which will be used if it can be built. Args: nodes (numpy.ndarray):
 The nodes defining a curve. Returns: numpy.ndarray: The nodes of the degree-elevated curve. """

    dimension, num_nodes = np.shape(nodes)
    new_nodes = np.empty((dimension, num_nodes + 1), order="F")
    multipliers = np.arange(1, num_nodes, dtype=_FLOAT64)[np.newaxis, :]
    denominator = float(num_nodes)
    new_nodes[:, 1:-1] = (
        multipliers * nodes[:, :-1]
        + (denominator - multipliers) * nodes[:, 1:]
    )
    # Hold off on division until the end, to (attempt to) avoid round-off.
    new_nodes /= denominator
    # After setting the internal nodes (which require division), set the
    # boundary nodes.
    new_nodes[:, 0] = nodes[:, 0]
    new_nodes[:, -1] = nodes[:, -1]
    return new_nodes