现已结束的讨论展示了如何在 python 中使用 R dtw 包。这有点笨拙,但是 R dtw 包比当前可用的 python dtw 实现更好而且更好。不幸的是,像 Sakoe-Chiba band 这样的窗口函数在尝试指定“window.size”时不起作用。映射到参数似乎存在问题。注意 ”。” 使用 rpy2 时,in arguments 应该被替换为“_”。但是遵循这个约定,由于某种原因没有使用该参数。
import numpy as np
import rpy2.robjects.numpy2ri
from rpy2.robjects.packages import importr
rpy2.robjects.numpy2ri.activate()
# Set up our R namespaces
R = rpy2.robjects.r
DTW = importr('dtw')
# Generate our data
idx = np.linspace(0, 2*np.pi, 100)
template = np.cos(idx)
query = np.sin(idx) + np.array(R.runif(100))/10
# Calculate the alignment vector and corresponding distance
alignment = R.dtw(query, template, keep=True,window_type='sakoechiba',
window_size=5)
>>> RRuntimeError: Error in window.function(row(wm), col(wm), query.size= n, reference.size = m, :
argument "window.size" is missing, with no default
您可以看到错误状态“window.size”丢失,尽管“window_size”明确以 rpy2 方式指定。