自定义安装的Python包?

时间:2013-09-25 07:55:49

标签: python

是否可以修改已安装的Python包以便为我的目的自定义它?更具体地说,我希望修改Dynamic Time Warping (DTW)中的the mlpy package函数。


这些详细信息仅供参考。如果他们帮忙,那就好了。否则,只需用通用的方式回答问题就足够了。

我要加入x的两个系列ymlpy.dtw_std(x, y, dist_only=True)是以弧度为单位的角度。所以我希望函数计算的差异能够考虑到这一点。即, 0 2pi 应该有 0 而不是 2pi 的差异。


我如何进入包装并自定义?

1 个答案:

答案 0 :(得分:3)

不要尝试自定义函数,因为在任何情况下都可能有其他库期望函数未经修改地工作。相反,您可以编写自己的函数,通过计算2π的余数来规范化值。如果使用numpy.array作为输入,那么您可以通过

轻松计算每个元素的剩余部分
from math import pi

normalized = array % (2 * pi) 

如果您使用其他序列类型,则只计算每个元素的e % 2 * pi。之后将其提供给DTW。但请注意,双精度会非常快地失去精度,但您可能会发现value - (value + 2 * pi) % (2 * pi)可能不等于零。

更新

要标准化值,使两个连续值之间的差异最小,您可以使用numpy.unwrap。然而,这当然不意味着值在[0,2π]之间