Как вы можете видеть мой вопрос выше, я хотел бы замаскировать / игнорировать нулевые значения от ndarray, который я хотел бы интерполировать позже.Я надеюсь, что вы можете помочь мне с этим, потому что я уже много дней пытаюсь решить эту проблему.
Что я хочу?
У меня много ndarrays с разнымиразмеры длины, которые я хотел бы интерполировать, скажем, в этом случае, чтобы сделать его меньше.
Вот как выглядит один из этих массивов:
[0.0, 0.0, 0.0, 0.0, 0.0, 144.0, 144.0, 145.0, 145.0, 144.0, 143.0, 143.0, 0.0, 0.0, 0.0]
Как видите, это всегда одна строка (назовем ее "array_row") со многими элементами (для этого примера я только что написал пример массива с 15 элементами)
Как мнеинтерполировать?
Я использую метод изменения размера изображения scikit, например:
new_array = skimage.transform.resize(array_row, (1, 10))
Результат этой интерполяции выглядит примерно так:
[0.0, 0.0, 71.49999999, 144.0, 144.60344827, 145.0, 144.70896278, 143.0, 71.49999999, 0.0, 0.0]
При использовании интерполяции этот результат выглядит примерно так.Значение «71.49999999» связано с нулевым значением до и / или после ненулевых значений, что является нормальным.
Но для моего случая я не хочу, чтобы это происходило.Я хотел бы позволить skimage.transform.resize
игнорировать нулевые значения, чтобы результат был примерно таким:
[0.0, 0.0, 144.0, 144.0, 144.60344827, 145.0, 144.70896278, 143.0, 143.0, 0.0, 0.0]
Значения не должны изменяться (или, по крайней мере, только из ненулевого значениярядом с ним).
На самом деле я понятия не имею, как это сделать.Я пробовал что-то вроде маскировки и присвоения замаскированным индексам значения «255», что также не дает ожидаемого результата.
Есть ли у вас какие-либо идеи о том, как достичь этой цели?