Возможно ли как-то определить длину массива массивов в кортеже tck
, возвращаемом scipy.interpolate.splprep
, перед вычислением значений?
Я должен приспособить сплайн-интерполяцию к шумным данным с 5 миллионами точек данных (или меньше, может варьироваться).
Мое наблюдение состоит в том, что интерполяция при длине массива ~ 90 довольно хороша, в то время как вычисление интерполяции для более длинных массивов занимает много времени (иногда она также напрямую переходит с ~ 90 на ~ 1000, делая с на один шаг меньше, и интерполяция также становится шумной), и этого недостаточно, если длина массива намного меньше (<50) ... </p>
На самом деле, эта длина массива зависит от коэффициента сглаживания с , предоставленного функции splprep
, но для разных данных измерений с сильно варьируется для получения согласованной длины массива около 90. Например, для data1
s имеет значение около 1000, чтобы получить len(cfk[0])
равно 90, для data2
s имеет значение около 100, чтобы получить len(cfk[0])
равно 90 при одинаковой длине data1
и data2
. Это может зависеть от шума данных ...
Я думал о цикле, где s начинается в некоторой точке и уменьшается через цикл, в то время как len(cfk[0])
постоянно проверяется - но это занимает много времени, особенно если len(cfk[0])
приближается к 90.
Поэтому было бы полезно как-то узнать коэффициент сглаживания, чтобы получить желаемую длину массива, прежде чем вычислять кортеж cfk.