Python 区分两个数据集

Python 区分两个数据集,python,Python,我有两个测量数据,为了简单起见,它们近似于一个正弦波和一个余弦波,所以对于这个问题,我会把它们当作是 这些波的正确值包含在两个数组a和b中。但是,一些值被交换;也就是说,属于波形a的一些值实际上存储在b中,反之亦然。我正在寻找一种可靠的方法来识别值何时交换。我该如何最好地处理这个问题 目前,我试图查看两个连续结果之间的差异是否大于它与另一个表之间的差异,但是这有一个缺点,即每次都“反转”波形。有更好的办法吗 sins, coss = [], [] random_deviants = [11,

我有两个测量数据,为了简单起见,它们近似于一个正弦波和一个余弦波,所以对于这个问题,我会把它们当作是

这些波的正确值包含在两个数组a和b中。但是,一些值被交换;也就是说,属于波形a的一些值实际上存储在b中,反之亦然。我正在寻找一种可靠的方法来识别值何时交换。我该如何最好地处理这个问题

目前,我试图查看两个连续结果之间的差异是否大于它与另一个表之间的差异,但是这有一个缺点,即每次都“反转”波形。有更好的办法吗

sins, coss = [], []

random_deviants = [11, 12, 38, 39, 40, 41, 42, 43, 44]

for i in range(50):
    if i not in random_deviants:
        sins.append(math.sin(i/4))
        coss.append(math.cos(i/4))
    else:
        sins.append(math.cos(i/4))
        coss.append(math.sin(i/4))
    
    
plt.plot(sins)
plt.plot(coss)
plt.show()
信号被切换。识别这些转换点并恢复自然窦波和余弦波的最佳方法是什么


如果您的数据正好是正弦和余弦,则可以使用分析方程计算出某些内容,但由于您的实际数据仅近似于正弦和余弦,因此可能无法很好地计算出来。你至少知道近似值有多好吗?例如,您知道实际数据最大偏离正弦或余弦函数的程度吗?假设信号接近正弦和余弦波,那么delta(当前采样值-以前的采样值)将仅在其峰值或波峰处改变符号(+到-或反之亦然)。但这绝不会同时发生。如果它们同时发生,则我们可以假设信号值已交换。您可以假设,如果点p和下一点p+1之间的增量y大于给定阈值,则点已交换。所以点p+1应该总是接近点p,至少是最接近的点。@Valentino我不知道这一点