Я пишу код Cython, который должен обрабатывать NumPy ndarrays с произвольным числом измерений. В настоящее время я просто различные функции, которые принимают ndarrays разных размеров, вроде:Cython ndarray с произвольными размерами
def func1(np.ndarray[DTYPE_float64_t, ndim=1] arr):
# Do something with the 1-D ndarray.
def func2(np.ndarray[DTYPE_float64_t, ndim=2] arr):
# Do something with the 2-D ndarray.
def func3(np.ndarray[DTYPE_float64_t, ndim=3] arr):
# Do something with the 3-D ndarray.
Но я хотел бы написать один обобщенную функцию, которая принимает ndarray произвольной размерности в качестве аргумента. Я попробовал просто оставить аргумент «ndim», но тогда Cython предполагает ndim = 1, и это нехорошо.
Есть ли способ сделать это, или мне просто нужно написать одну функцию для каждого числа измерений?