Как напечатать 2d матрицу и добавить метки, сохраняя все по центру (Python) - PullRequest
1 голос
/ 16 апреля 2019

У меня есть запутанная матрица и набор меток, которые я хочу добавить в каждую строку и столбец при печати

Это мой код:

def PrintConfusionMatrix(matrix,labels):
    for i in range(len(labels)):
        print(labels[i],end = "  ")#print labels on the first line

    for i in range(len(mc)):
        print("\n")
        print(labels[i], end = "  ")
        for j in range(len(mc)):
            print(matrix[i][j], end = "  ")

Входные данные следующие:

labels = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica']
matrix = [[19,  0,  0],
         [ 0, 19,  0],
         [ 0,  2, 20]]

В настоящее время он печатает это:

Iris-setosa  Iris-versicolor  Iris-virginica  

Iris-setosa  19  0  0  

Iris-versicolor  0  19  0  

Iris-virginica  0  2  20

но я хочу, чтобы это печаталось таким образом

             Iris-setosa  Iris-versicolor  Iris-virginica  

Iris-setosa       19              0               0  

Iris-versicolor    0             19               0  

Iris-virginica     0              2              20

Кто-нибудь может мне помочь с этим? Также было бы здорово, если бы она могла масштабироваться до более крупной 2d матрицы

Спасибо

1 Ответ

0 голосов
/ 16 апреля 2019

Самый простой способ - использовать pandas, если вы не возражаете против использования внешней библиотеки:

import pandas as pd

df = pd.DataFrame(matrix, columns=labels, index=labels)

print(df)

                 Iris-setosa  Iris-versicolor  Iris-virginica
Iris-setosa               19                0               0
Iris-versicolor            0               19               0
Iris-virginica             0                2              20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...