Documentation in scipy.interpolate (found at https://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html) states:
"The parameter variable is given with the keyword argument, u, which defaults to an equally-spaced monotonic sequence between 0 and 1."
From experimenting with the function in 2D, it appears that the parameter is the length along the curve. Here's a snippet my test script:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import splprep, splev
n = 20
iota = np.arange(n)
gamma = 5
theta = np.pi/2 * (1.0 * iota / (n-1)) ** gamma
r = np.cos(theta)
z = np.sin(theta)
spl, u = splprep([r,z])
spline = splev(u, spl)
# Sampled point at half-length?
test = splev(0.5, spl)
plt.plot(r, z, '*')
plt.plot(spline[0], spline[1], '*', color = 'red')
plt.plot(test[0], test[1], '*', color = 'cyan')
# Exact mid-point.
plt.plot(np.sqrt(2)/2, np.sqrt(2)/2, '*', color = 'purple')
plt.axis('equal')
plt.show()
The above statement does not (to me) seem to clearly convey this behavior. Would anyone have input on this?