Интерполировать целые массивы комплексных чисел

У меня есть несколько двумерных массивов np.arrays (все одинакового размера), содержащих комплексные числа. Каждый из них принадлежит одной позиции в 4-мерном пространстве. Эти позиции редки и распределены неравномерно (если быть точным, латинский гиперкуб). Я хотел бы интерполировать эти данные в другие точки в том же 4-мерном пространстве.

Я могу успешно сделать это для простых чисел, используя либоsklearn.kriging(), scipy.interpolate.Rbf() (или другие):

# arrayof co-ordinates: 2 4D sets
X = np.array([[1.0, 0.0, 0.0, 0.0],\
              [0.0, 1.0, 0.0, 0.0]])

# two numbers, one for each of the points above 
Y = np.array([1,\
              0])

# define the type of gaussian process I want
kriging = gp.GaussianProcess(theta0=1e-2, thetaL=1e-4, thetaU=4.0,\
            corr='linear', normalize=True, nugget=0.00001, optimizer='fmin_cobyla')

# train the model on the data
kmodel = kriging.fit(X,Y)

# interpolate
kmodel.predict(np.array([0.5, 0.5, 0.0, 0.0]))
# returns: array([ 0.5])

Если я пытаюсь использовать массивы (или просто комплексные числа) в качестве данных, это не сработает:

# two arrays of complex numbers, instead of the numbers 
Y = np.array([[1+1j, -1-1j],\
              [0+0j,  0+0j]])

kmodel = kriging.fit(X,Y)
# returns: ValueError: The number of features in X (X.shape[1] = 1) should match the sample size used for fit() which is 4.

Это очевидно, так как документация дляkriging.fit() ясно утверждает, что ему нужен массив из n скаляров, по одному на каждый элемент в первом измерении X.

Одно из решений состоит в том, чтобы разложить массивы в Y на отдельные числа, а именно на действительные и мнимые части, сделать отдельную интерполяцию каждого из них и затем снова собрать их вместе. Я могу сделать это с правильной комбинацией циклов и некоторой артистичностью, но было бы хорошо, если бы был метод (например, вscipy.interpolate), который может обрабатывать весь массив np.array вместо скалярных значений.

Я не зафиксирован на конкретном алгоритме (пока), поэтому я был бы рад узнать о любом, который может использовать массивы комплексных чисел в качестве «переменной» для интерполяции. Поскольку - как я уже сказал - в пространстве мало и нерегулярных точек (и нет сетки для интерполяции), простая линейная интерполяция, конечно, не подойдет.

Ответы на вопрос(2)

Ваш ответ на вопрос