2016年8月20日土曜日

開発環境

Elegant Scipy (Juan Nunez-iglesias (著)、Stéfan Van Der Walt (著)、Harriet Dashnow (著)、 O'Reilly Media)のChapter 5.(Contingency tables using sparse coordinate matrices)、Generic filters の Exercise(No. 3006) を取り組んでみる。

Exercise(No. 3006)

コード(Emacs)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import numpy as np


def general_confusion_matrix(pred, gt):
    n_classes = max(max(pred), max(gt)) + 1
    cont = np.zeros((n_classes, n_classes))
    for i, j in zip(pred, gt):
        cont[i, j] += 1
    return cont

if __name__ == '__main__':
    pred = np.array([0, 1, 0, 0, 1, 1, 1, 0, 1, 1])
    gt = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1])
    print(general_confusion_matrix(pred, gt))
    pred = np.array([0, 1, 0, 0, 2, 1, 1, 0, 1, 1])
    gt = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1])
    print(general_confusion_matrix(pred, gt))

入出力結果(Terminal, IPython)

$ ./sample2.py
[[ 3.  1.]
 [ 2.  4.]]
[[ 3.  1.  0.]
 [ 1.  4.  0.]
 [ 1.  0.  0.]]
$ 

0 コメント:

コメントを投稿