Множественная одномерная интерполяция в двумерном массиве без циклаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Множественная одномерная интерполяция в двумерном массиве без цикла

Сообщение Anonymous »

У меня есть массив np с ndim = 2. Мне нужно выполнить выборку интерполированных значений по одному измерению, и я хотел бы сделать это максимально эффективно.
Я придумал это решение:

Код: Выделить всё

for i in range(my_array.shape[0]):
my_interp_array[i, :] = np.interp(sample_y , np.arange(array_size_y), my_array[i,:])
... где sample_y представляет собой некоторый неэквидистантный вектор выборки. Хотя это дает желаемый результат, это, вероятно, очень неэффективное решение.
Я также попробовал scipy.interpolate.interp1d, как это было предложено другими, например:< /p>

Код: Выделить всё

y = np.arange(array_size_y)  # equidistant sampling vector
intf = interp1d(y, my_array)  # interpolation function
my_interp_array = intf(np.tile(sample_y, (len(y), 1)))
... но на самом деле это занимает в >3000 раз больше времени, чем первая идея с циклом for, что меня смущает.
Есть ли у кого-нибудь идеи, как как это улучшить и почему интерполяция scipy у меня настолько медленная?
Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/787 ... thout-loop
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»