是否可以修改已安装的 Python 包以便根据我的目的对其进行自定义?更具体地说,我希望修改包中的动态时间规整 (DTW)函数。mlpy
这些细节仅供您参考。如果他们有帮助,那很好。否则,仅以通用方式回答问题就足够了。
我输入x
的两个系列是弧度角。所以我希望函数计算的差异考虑到这一点。即,0和2pi应该有0而不是2pi的差异。y
mlpy.dtw_std(x, y, dist_only=True)
我如何才能进入包并进行自定义?
是否可以修改已安装的 Python 包以便根据我的目的对其进行自定义?更具体地说,我希望修改包中的动态时间规整 (DTW)函数。mlpy
这些细节仅供您参考。如果他们有帮助,那很好。否则,仅以通用方式回答问题就足够了。
我输入x
的两个系列是弧度角。所以我希望函数计算的差异考虑到这一点。即,0和2pi应该有0而不是2pi的差异。y
mlpy.dtw_std(x, y, dist_only=True)
我如何才能进入包并进行自定义?
不要尝试自定义函数,因为在任何情况下都可能有其他库希望该函数在未经修改的情况下正常工作。相反,您可以编写自己的函数,通过计算 2π 的余数来标准化值。如果您使用 numpy.array 作为输入,那么您可以轻松计算每个元素的余数,只需
from math import pi
normalized = array % (2 * pi)
如果您使用其他序列类型,则只需计算e % 2 * pi
每个元素的 。之后将其提供给 DTW。但是请注意,双精度数会很快失去精度,但您可能会发现value - (value + 2 * pi) % (2 * pi)
可能不等于零。
要标准化这些值,以使 2 个连续值之间的差异最小,您可以使用numpy.unwrap
. 但是,这当然并不意味着这些值在 [0,2π) 之间