python窗口中的rpy2动态时间扭曲(dtw)不

2024-10-03 19:24:43 发布

您现在位置:Python中文网/ 问答频道 /正文

现在关闭的discussion演示了如何在python中使用rdtw包。这有点笨拙,但是rdtw包非常好,比当前可用的pythondtw实现更好。不幸的是,当Sakoe不能指定窗口时窗口大小". 似乎与参数的映射有问题。请注意,在使用rpy2时,参数中的“.”应该被替换为“\”。但按照这一惯例,这一论点并不是出于某种原因被使用的。在

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

您可以看到错误状态“窗口大小”缺失,尽管rpy2格式中明确指定了“窗口大小”。在


Tags: import参数sizenpourtemplatewindowquery
1条回答
网友
1楼 · 发布于 2024-10-03 19:24:43

回答我自己的问题,以防有人遇到同样的问题。问题是参数映射和R三点省略号“…”。这可以通过手动指定映射来解决。在

from rpy2.robjects.functions import SignatureTranslatedFunction

R.dtw = SignatureTranslatedFunction(R.dtw,
                        init_prm_translate={'window_size': 'window.size'})

因此,在这个规范中,window_size参数的使用是正确的。在

^{pr2}$

相关问题 更多 >