Проблема с использованием scipy.interpolate.interp2d. Выполнение кода занимает слишком много времени - PullRequest
1 голос
/ 03 февраля 2020

У меня есть текстовый файл с тремя столбцами. Первые позиции X, вторые позиции Y и третьи значения переменной X и Y. Я хочу интерполировать это. Однако, когда я запускаю код, это занимает слишком много времени. Я позволил ему работать в течение 10 минут подряд, прежде чем остановить выполнение, и это не сработало. Я создал аналогичный код в Mathematica, и это занимает всего 10 секунд и делает больше вещей.

Я читаю текстовый файл и задаю значения X, Y и f (X, Y) как

f = open('XdataTXT.txt','r')
linesX=f.readlines()
X_column_number = 0
positionX=[]
Y_column_number = 1
positionY=[]
VarX_column_number=2
varX=[]
for x in linesX:
    positionX.append(float(x.split()[X_column_number]))
    positionY.append(float(x.split()[Y_column_number]))
    varX.append(float(x.split()[VarX_column_number]))
f.close()

Получив эти три вектора, я пытаюсь следовать этому пример , в котором делается подобное. Там назначаются значения функции f (x, y), а затем выполняется интерполяция.

Мой код выглядит следующим образом

windXInterpFunc = interpolate.interp2d(positionX, positionY, windX, kind='cubic')

Я также пытался транспонировать векторы, но он тоже не работает.

positionXT=np.reshape(positionX, 42441)
positionYT=np.reshape(positionY, 42441)
windXT=np.reshape(windX, 42441)

Может кто-нибудь сказать, пожалуйста, где моя ошибка?

...