本文整理汇总了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