当前位置: 首页>>代码示例>>Python>>正文


Python DataArray.loc[rLabel,REFERENCE_TOTAL]方法代码示例

本文整理汇总了Python中xarray.DataArray.loc[rLabel,REFERENCE_TOTAL]方法的典型用法代码示例。如果您正苦于以下问题:Python DataArray.loc[rLabel,REFERENCE_TOTAL]方法的具体用法?Python DataArray.loc[rLabel,REFERENCE_TOTAL]怎么用?Python DataArray.loc[rLabel,REFERENCE_TOTAL]使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在xarray.DataArray的用法示例。


在下文中一共展示了DataArray.loc[rLabel,REFERENCE_TOTAL]方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: matrix

# 需要导入模块: from xarray import DataArray [as 别名]
# 或者: from xarray.DataArray import loc[rLabel,REFERENCE_TOTAL] [as 别名]
    def matrix(self, reference, hypothesis, uem=None):

        reference, hypothesis, errors = self.difference(reference, hypothesis, uem=uem, uemified=True)

        chart = errors.chart()

        # rLabels contains reference labels
        # hLabels contains hypothesis labels confused with a reference label
        # falseAlarmLabels contains false alarm hypothesis labels that do not
        # exist in reference labels // corner case  //

        falseAlarmLabels = set(hypothesis.labels()) - set(reference.labels())
        hLabels = set(reference.labels()) | set(hypothesis.labels())
        rLabels = set(reference.labels())

        # sort these sets of labels
        cmp_func = reference._cmp_labels
        falseAlarmLabels = sorted(falseAlarmLabels, cmp=cmp_func)
        rLabels = sorted(rLabels, cmp=cmp_func)
        hLabels = sorted(hLabels, cmp=cmp_func)

        # append false alarm labels as last 'reference' labels
        # (make sure to mark them as such)
        rLabels = rLabels + [(MATCH_FALSE_ALARM, hLabel) for hLabel in falseAlarmLabels]

        # prepend duration columns before the detailed confusion matrix
        hLabels = [
            REFERENCE_TOTAL,
            HYPOTHESIS_TOTAL,
            MATCH_CORRECT,
            MATCH_CONFUSION,
            MATCH_FALSE_ALARM,
            MATCH_MISSED_DETECTION,
        ] + hLabels

        # initialize empty matrix
        matrix = DataArray(
            np.zeros((len(rLabels), len(hLabels))), coords=[("reference", rLabels), ("hypothesis", hLabels)]
        )

        # loop on chart
        for (status, rLabel, hLabel), duration in chart:

            # increment correct
            if status == MATCH_CORRECT:
                matrix.loc[rLabel, hLabel] += duration
                matrix.loc[rLabel, MATCH_CORRECT] += duration

            # increment confusion matrix
            if status == MATCH_CONFUSION:
                matrix.loc[rLabel, hLabel] += duration
                matrix.loc[rLabel, MATCH_CONFUSION] += duration
                if hLabel in falseAlarmLabels:
                    matrix.loc[(MATCH_FALSE_ALARM, hLabel), rLabel] += duration
                    matrix.loc[(MATCH_FALSE_ALARM, hLabel), MATCH_CONFUSION] += duration
                else:
                    matrix.loc[hLabel, rLabel] += duration
                    matrix.loc[hLabel, MATCH_CONFUSION] += duration

            if status == MATCH_FALSE_ALARM:
                # hLabel is also a reference label
                if hLabel in falseAlarmLabels:
                    matrix.loc[(MATCH_FALSE_ALARM, hLabel), MATCH_FALSE_ALARM] += duration
                else:
                    matrix.loc[hLabel, MATCH_FALSE_ALARM] += duration

            if status == MATCH_MISSED_DETECTION:
                matrix.loc[rLabel, MATCH_MISSED_DETECTION] += duration

        # total reference and hypothesis duration
        for rLabel in rLabels:

            if isinstance(rLabel, tuple) and rLabel[0] == MATCH_FALSE_ALARM:
                r = 0.0
                h = hypothesis.label_duration(rLabel[1])
            else:
                r = reference.label_duration(rLabel)
                h = hypothesis.label_duration(rLabel)

            matrix.loc[rLabel, REFERENCE_TOTAL] = r
            matrix.loc[rLabel, HYPOTHESIS_TOTAL] = h

        return matrix
开发者ID:pyannote,项目名称:pyannote-metrics,代码行数:85,代码来源:identification.py


注:本文中的xarray.DataArray.loc[rLabel,REFERENCE_TOTAL]方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。